1。我正在尝试将 ajax 添加到我的 django Web 应用程序中...我编写的代码如下所示...为了测试,我想在 id="id_ajax1"的 html 元素中显示文本...代码成功显示文本,但它会自动重新加载页面...
2。当我从这一行下面给出的代码编写第一个代码时,行为如上所述...当我从下面的代码编写第二个代码时,它显示 损坏的管道 ('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")
最佳答案
有多个问题可能导致此行为:
- 您正在提交表单,因此正在重新加载页面。
ajax1()
函数应返回false
以防止浏览器自动发送表单。 xhr.open()
中使用的 url 与urls.py
中定义的 url 不同- 我不确定是什么原因导致管道损坏错误。这可能是模仿类型。
application/javascript
用于将实际的 Javascript 代码发送到浏览器。发送文本(如 AJAX)所需的 mimetype 是text/plain
。在您的情况下,根本不需要定义 mimetype。
关于javascript - django ajax javascript 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41777584/