最佳答案
我使用的是 Django 1.7和 Django-rest-Framework。
我创建了一个 API,它返回一些 JSON 数据,将其放入我的 settings.py
中
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': ('rest_framework.permissions.AllowAny',),
'DEFAULT_RENDERER_CLASSES': (
# 'rest_framework.renderers.XMLRenderer',
'rest_framework.renderers.JSONRenderer',
# 'rest_framework.renderers.BrowsableAPIRenderer',
)
}
当我调用 GET 时,它返回所有的数据,但是当我尝试 PUT/PATCH 时,我得到:
--------Response Headers---------
Status Code: 403
Date: Wed, 29 Oct 2014 18:51:42 GMT
Vary: Cookie
Server: WSGIServer/0.1 Python/2.7.8
Allow: GET, POST, PUT, PATCH, HEAD, OPTIONS
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
---------------------------------
--------Response Body-----------
{"detail": "CSRF Failed: CSRF token missing or incorrect."}
---------------------------------
只有当我登录时才会发生这种情况,如果我是匿名的,我可以正确地使用/PATCH。
我已经尝试与 @csrf_exempt
和我得到了错误,我已经包括在设置的 rest_framework.permissions.AllowAny
..。
我不知道怎么回事,有人知道问题出在哪吗?