我在本地机器上使用两个开发服务器(Node和Django的)。
我已经将django-cors-headers
添加到项目中,以允许所有来源和方法(在开发环境中),并使用以下设置:
CORS_ORIGIN_ALLOW_ALL = 'ALL'
CORS_ALLOW_METHODS = (
'GET',
'POST',
'PUT',
'PATCH',
'DELETE',
'OPTIONS'
)
当我尝试DELETE时,收到了405错误代码。 查看响应头。
HTTP/1.0 405 METHOD NOT ALLOWED
Date: Mon, 03 Nov 2014 10:04:43 GMT
Server: WSGIServer/0.1 Python/2.7.5
Vary: Cookie
X-Frame-Options: SAMEORIGIN
Content-Type: application/json
Access-Control-Allow-Origin: *
Allow: GET, POST, HEAD, OPTIONS
请注意,允许的方法列表中没有DELETE
、PATCH
/ PUT
。
我的配置是否有遗漏?
viewsets.ModelViewSet
- 测试运行完美。 - hakiCORS_ALLOW_METHODS
定义了全局可用的方法,但不会自动将其添加到视图中。还有一点需要注意:CORS_ORIGIN_ALLOW_ALL
必须是布尔值,而非字符串类型。 - coldmindModelViewset
允许在特定视图上进行DELETE吗?测试中删除方法正在工作,因此视图必须允许它,但是响应中未更新CORS标头(我认为djagno-cors-header
应该这样做...) - haki