django ajax javascript不工作

Posted

技术标签:

【中文标题】django ajax javascript不工作【英文标题】:django ajax javascript not working 【发布时间】:2017-06-06 06:21:26 【问题描述】:

1。我正在尝试将 ajax 添加到我的 django Web 应用程序中...我编写的代码如下...为了测试我想在 id="id_ajax1" 的 html 元素中显示一个文本...代码成功显示文本,但它会再次自动重新加载页面...

2。当我从这一行下面给出的代码中编写第一个时,行为如上所述......当我从下面的代码中编写第二个时,它显示 broken pipe ('127.0.0.1', 46958)

return HttpResponse("text to be returned asynchronously")

return HttpResponse("text to be returned asynchronously", mimetype="application/javascript")

代码:

ajax.html

<form action onsubmit="ajax1()">
 <span id="id_ajax1"></span>
 <button class="col-5" type="submit">click</button> 
</form>

ajax.js

function ajax1() 
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() 
        if (this.readyState == 4 && this.status == 200) 
            document.getElementById("id_ajax1").innerHTML = this.responseText;
        
    ;

    var url = "test/ajax1";
    xhttp.open("GET", "/test/ajax1", true);
    xhttp.send();

urls.py

urlpatterns = [
    url(r'^test/ajax1/$', views.ajax1, name='ajax1'),
]

views.py

def ajax1(request):
    return HttpResponse("You have successfully written your first ajax code")

【问题讨论】:

【参考方案1】:

有多个问题可能导致此行为:

    您正在提交表单,因此重新加载页面。 ajax1() 函数应返回 false 以防止浏览器自动发送表单。 xhr.open()中使用的url与urls.py中定义的url不同 我不确定是什么导致了管道损坏错误。这可能是mimetype。 application/javascript 用于将实际的 Javascript 代码发送到浏览器。发送文本(如使用 AJAX)所需的 mimetype 是 text/plain。在您的情况下,根本不需要定义 mimetype。

【讨论】:

以上是关于django ajax javascript不工作的主要内容,如果未能解决你的问题,请参考以下文章

在 Django 中是不是有一种惯用的方法来编写不显眼的 JavaScript 和/或进行 AJAX 表单提交?

Django Ajax

Django之Ajax

Django处理ajax请求

Django基础之Ajax简介

09.Django基础七之Ajax