我已经成立了一个REST API在Django和通过JavaScript与AJAX请求CORS启用的事情。 直到我尝试使用PUT请求它工作正常。 由于Django的不能处理PUT,我使用Django活塞的coerce_put_post方法。 问题是,该PUT请求被成功处理,但OPTIONS请求失败, 405 METHOD NOT ALLOWED
。
这是失败的请求的网络日志。
- 申请网址 :
http://localhost
- 请求方法 :OPTIONS
- 状态代码 :405不允许的方法
请求头
- 接受 :/
- 接受编码 :gzip,放气,SDCH
- 接受语言 :DE,EN-US; Q = 0.8,连接; Q = 0.6
- 访问控制请求报头 :接受,来源,内容类型
- 访问控制请求-方法 :PUT
- 缓存控制 :无缓存
- 连接 :保持活跃
- 主持人 :FOO
- 产地 :
http://localhost
- 附注 :无缓存
- 引用站点 :
http://localhost/bar
- 用户代理 :Mozilla的/ 5.0(Windows NT的6.2; WOW64)为AppleWebKit / 537.36(KHTML,例如Gecko)铬/ 28.0.1500.95 Safari浏览器/ 537.36
响应头
- 访问控制允许的凭据 :真
- 访问控制允许报头 :内容类型,语用,缓存控制
- 访问控制允许的方法 :POST,GET,OPTIONS,PUT,DELETE
- 访问控制允许来源 :
http://localhost
- 允许 :POST,GET,期权,放,删除
- 内容类型 :text / html的; 字符集= utf-8的
- 日期 :星期五,2013年8月9日9时39分41秒GMT
- 服务器 :WSGIServer / 0.1的Python / 2.7.4
正如你所看到的,选项在CORS标头实际上是允许的。
那么,为什么它仍然会失败?