python - 向 Django 发送 Ajax 请求

标签 python ajax django

我对 Ajax 和 Django 还很陌生,我正在尝试向名为“update”的函数发送一个简单的 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/

相关文章:

python - 我们可以在 .NET ironpython 中加载 pandas DataFrame 吗?

python - c_void_p 值无效*

javascript - 真正的 Ajax uploader 不会显示在 DIV 中

javascript - 从 JQuery Ajax/Javascript 调用启用 CORS 的 API

django - 如何为 Django 中的所有用户缓存 View

python - 迭代 Django 中的相关对象 : loop over query set or use one-liner select_related (or prefetch_related)

python - 为什么我可以从命令行导入 Python 模块,但不能从脚本导入?

python - 在 matplotlib 中绘制图像作为极投影散点图的背景

javascript - 带 for 语句的空表单

django - 如何正确导入另一个 django 应用程序中的多个类