繁体   English   中英

使用 AJAX 将 JSON 发布到 Django 视图

[英]Posting JSON to Django views with AJAX

我正在尝试将 JSON 对象从我的客户端 Javascript 发布到我的 Django 视图。

尝试发布时收到“500(内部服务器错误)”。 这与CSRF令牌有关吗? 我怎样才能解决这个问题?

我的 AJAX

  $.ajax({
      type: 'POST',
      dataType: 'json',
      url: '/demo/saved/',
      data: {'data': JSON.stringify(finalSelection)},
      success: function() {
         console.log("Success")
      }
    });

视图.py

def show(request):
    data = json.loads(request.POST.get('data', ''))
    context = {
        'data': data
    }
    return render(request, 'bill/saved.html', context )

网址.py

urlpatterns = [
    path('bill/', views.bill_view, name = 'bill-view'),
    path('saved/', views.show, name = 'selected-view'),
]

感谢任何帮助!

假设它确实是您提到的 CSRF 问题,因为您没有发布 500 错误输出,您可以简单地将 csrf 令牌添加到您在 POST 请求中发送的data中:

$.ajax({
...
    data: {
        'data': JSON.stringify(finalSelection),
        'csrfmiddlewaretoken': '{{ csrf_token }}'
    },
...
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM