gpt4 book ai didi

python - 向 Django 发送 Ajax 请求

转载 作者:太空宇宙 更新时间:2023-11-04 06:08:40 25 4
gpt4 key购买 nike

我是 Ajax 和 Django 的新手,我正在尝试向名为“更新”的函数发送一个简单的 ajax 请求。但我也不希望实际的 url 在发送请求时在浏览器中发生变化(例如 www.website.com/page/即使使用 ajax 请求也将保持不变)。基本上,当我尝试提交 ajax 请求时,我从服务器收到 403 错误。我相信我的部分问题可能是 urls.py 中的 url 映射...

这是我的 ajax 请求:

$.ajax({
type : "POST",
url : "/page/update/",
data : {
data : somedata,
},
}).done(function(data){
alert(data);
});

这是它应该得到的 View :

def update(request):
if request.is_ajax():
message = "Yes, AJAX!"
else:
message = "Not Ajax"

return HttpResponse(message)

这是我的 urls.py

urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^update/$', views.update, name='update'),
)

提前感谢您的帮助。

我更深入地研究了错误和我需要包含的错误状态{% csrf_token %} 发回帖子时。本例 how to get POST data in django 1.3显示它已放入表单中,但我的请求仅在点击功能时调用

最佳答案

ajax 请求“/page/update/”中的 url 与 urls.py 不匹配。这就是您收到 404 错误页面的原因。我会告诉你我的线路代码,你可以试试这个。

 $.ajax({
type: "POST",
url: "/update/"
data: {
csrfmiddlewaretoken: '{{ csrf_token }}',
data : somedata,
},
success: function(data) {
alert(data);
},
error: function(xhr, textStatus, errorThrown) {
alert("Please report this error: "+errorThrown+xhr.status+xhr.responseText);
}
});

/*'{{ csrf_token }}'是django专用的*/

这是观点:

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt //You can use or not use choice is left to you
def update(request):
if request.is_ajax():
message = "Yes, AJAX!"
else:
message = "Not Ajax"

return HttpResponse(message)

这是 urls.py

urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^update/$', views.update, name='update'),
)

关于python - 向 Django 发送 Ajax 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20249008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com