Django打破了CORS PUT OPTIONS请求

时间:2013-08-09 10:03:24

标签: django cors options http-method

我在django上设置了一个REST API,并通过启用了CORS的JavaScript AJAX请求。 它工作正常,直到我尝试使用PUT请求。 因为django无法处理PUT,我使用的是django-piston的coerce_put_post方法。 问题是,PUT请求被成功处理,但OPTIONS请求失败了405 METHOD NOT ALLOWED

这是失败请求的网络日志。

  • 请求网址http://localhost
  • 请求方法:选项
  • 状态代码:405方法不允许

请求标题

  • 接受 /
  • 接受编码:gzip,deflate,sdch
  • 接受语言:de,en-US; q = 0.8,en; q = 0.6
  • 访问控制请求标头:接受,来源,内容类型
  • 访问控制请求方法:PUT
  • 缓存控制:无缓存
  • 连接:keep-alive
  • 主持人:foo
  • 来源http://localhost
  • Pragma :no-cache
  • Referer http://localhost/bar
  • User-Agent :Mozilla / 5.0(Windows NT 6.2; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 28.0.1500.95 Safari / 537.36

响应标题

  • Access-Control-Allow-Credentials :true
  • Access-Control-Allow-Headers :Content-Type,Pragma,Cache-Control
  • 访问控制 - 允许 - 方法:POST,GET,OPTIONS,PUT,DELETE
  • 访问控制 - 允许 - 来源http://localhost
  • 允许:发布,获取,选项,放置,删除
  • 内容类型:text / html;字符集= UTF-8
  • 日期:星期五,2013年8月9日09:39:41 GMT
  • 服务器:WSGIServer / 0.1 Python / 2.7.4

如您所见,实际上允许在CORS标题中使用OPTIONS。

那为什么它仍然失败?

0 个答案:

没有答案