基本上我使用的是 POST 方法,但它会自动转换为 OPTIONS 方法。我知道浏览器会这样做,但也读到它很好,应该得到 201 的响应,但在我的情况下,它的行为不符合预期,我还在请求 header 中尝试了 Access-Control-Allow-Methods 但没有得到任何东西.
这是我的请求的样子:
OPTIONS http://xyz/abc
Accept: application/json
Content-Type: application/json
响应:
405, Method Not Allowed
Access-Control-Allow-Origin: *
Date: Tue, 05 May 2015 06:15:19 GMT
Connection: close
Accept-Ranges: bytes
Access-Control-Allow-Headers: authorization, content-type
Content-Length: 0
Access-Control-Allow-Methods: GET, PUT, POST, DELETE, HEAD
任何人都可以告诉我这个问题的原因,以及在经过足够的研究后,我的一切看起来都很好的确切原因。 提前致谢。
最佳答案
您可能会在跨源资源共享的 POST 请求期间看到飞行前检查。我不知道您的网络服务器需要如何设置才能支持此功能,但这篇维基百科文章可能是第一个帮助:http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
最简单的解决方案是在与您加载网页的来源相同的来源上执行 POST 请求。反向代理可能是一个合理的解决方案。
关于angularjs - POST 方法自动转换为 OPTIONS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30045787/