CSRF令牌丢失或不正确的django

时间:2017-02-15 18:09:28

标签: javascript ajax django python-3.x

我正在尝试使用.ajax将一些数据发送到视图,但我收到的CSRF令牌丢失或错误不正确。 我已将@ensure_csrf_cookie装饰器添加到视图中,该视图呈现页面以确保存在csrf cookie。 我正在使用Django 1.10.5和jquery 3.1.1

的Javascript

@login_required
def save_map_route(request):
    if request.user in route.owner_user.all():
        if request.POST:
            recieved_json_data = request.POST['data']
            route_id = request.POST['route_id']
            route = get_object_or_404(Route, pk=route_id)
            route.map_waypoints = recieved_json_data
            route.save()
            return HttpResponseRedirect(reverse('route:details', args=(route_new.pk,)))

它发送到的视图功能:

urlpatterns =[
    url(r'^$', views.index, name='index'),
    url(r'^savemaproute/$', views.save_map_route, name='save_map_route'),
    ]

urls.py

String

1 个答案:

答案 0 :(得分:0)

您只是错过了发送到视图的数据中的csrftoken

  var routeArray =Array(),
  routeArray =  control.getWaypoints();
  routeArray.push({route_id:routeId});
  console.log(routeArray);
  console.log(JSON.stringify(routeArray));
  var newData = JSON.stringify(routeArray);

您已定义csrftoken变量,但该变量未包含在newData中。

您的newData对象应如下所示:

{
    // ... your key-value pairs
    csrftoken: csrftoken
}
相关问题