我正在尝试使用.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
答案 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
}