这是我查阅的官方文档
为什么会出现csrf错误呢?我在data参数里面加入了csrf啊?
Forbidden (CSRF token missing or incorrect.): /account/test/
[20/Oct/2016 18:10:44] "POST /account/test/ HTTP/1.1" 403 2274
ajax代码 var csrftoken = Cookies.get('csrftoken');这里很诡异
function doTest() {
// 这里是按照官方文档写的,不是太明白,如果加入这一句话post表单根本就不会提交
//var csrftoken = Cookies.get('csrftoken');
$.ajax({
type: "POST",
url: "/account/test/",
// 这里可能有一点问题,但是要用csrf所以没有调用JSON.stringify(),
// 这里我应该如何处理呢?
data: {name: 'john', csrfmiddlewaretoken: '{{ csrf_token }}'},
contentType : 'application/json; charset=utf-8',
dataType: "json",
success: function(json) {
alert('success');
}
});
}
django代码
def diff_response(request):
if request.method == 'POST':
# data = json.loads(request.body.decode('utf-8'))
# print data['name']
print request.body
json_data = [{'name': 'tom', 'id': '1'},
{'name': 'mike', 'id': '2'}]
return HttpResponse(json.dumps(json_data, ensure_ascii=False))
调用ajax
<input type="submit" id="test-json" onclick="doTest()" value="test-json"/>
你再试一下在视图加装饰器。