我写了一个简单的Django视图:Django的视图返回JSON失败,CSRF
from django.http import HttpResponse
from django.utils import simplejson
from django.views.decorators.csrf import csrf_exempt # just add
@csrf_exempt
def handleRequest(request, intervention_code):
result = {}
norm_str = ''
........
return HttpResponse(simplejson.dumps(result), mimetype='application/json')
视图使用没有模板,只需查询数据库和JSON格式返回数据。 我可以检索JSON对象容易做http://myserver/myurl
不幸的是,我必须使用JavaScript库进行POST AJAX请求得到相同的JSON对象,我碰上了典型的Django CSRF失败。
当我这样做:curl -d "sometext=foobar" http://myserver/myurl/
我得到了同样的结果。 我从Django doc实现了所有推荐的CSRF中间件,但仍然出现错误。
这还不够...向我们展示如何将请求发送到服务器 –
当您执行ajax post时,您是否将CSRF令牌发送到服务器? –
请详细说明。 AJAX调用是通过从普通html文件调用的javascript函数制作的 –