使用Django时,jquery json出现“CSRF验证失败,请求被中止”错误
我想获取一些json数据,然后把它放到数据库里。现在我在用django这个框架。
但是当我发送json数据的时候,出现了这个错误:禁止访问(403),CSRF验证失败,请求被中止。
代码
def receiver(request):
try:
json_data = request_to_json(request)
# Retrieving json data
x = json_data['x']
y = json_data['y']
z = json_data['z']
# put it in database
db = db_connection().db;
db_manager= db_management(db);
db_manager.insert_point(x,y,z,x);
db.close()
# A variable to return to the app
response = 'OK'
except:
response = 'Error'
return HttpResponse(simplejson.dumps(response))
2 个回答
2
这是我找到的解决方案:
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def my_view(request):
return HttpResponse('Hello world')
1
当你尝试提交一些不在Django表单中的数据时,就会出现这个错误。
一个简单但不安全的方法是在你的视图函数前面加上 @csrf_exempt
,像这样:
@csrf_exempt
def my_view(request):
pass
还有一种不那么简单的方法,可以在这里找到: https://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax