Django的突破CORS看跌期权请求(Django breaks CORS PUT OPTIONS

2019-10-18 11:23发布

我已经成立了一个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标头实际上是允许的。

那么,为什么它仍然会失败?

文章来源: Django breaks CORS PUT OPTIONS request