angularjs - POST 方法自动转换为 OPTIONS

标签 angularjs rest http cors restful-url

基本上我使用的是 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/

相关文章:

python - 将 HTTP/1.1 与 SimpleHTTPRequestHandler 结合使用

asp.net - 撇开 HTTP 规范不谈,在 HTTP PUT 中附加资源 id 的主要原因或优势是什么?

http - 无状态Web应用程序,城市传奇?

javascript - AngularJS 指令用 ng-click 替换文本

javascript - Angular $scope.variable 未定义

java - 异常(exception)是 REST Jersey

java - 删除端点 url 中的 v1

ios - 推荐 : RestKit or AFNetworking for Rest/Soap server

javascript - AngularJS 过滤

jquery - AngularJs/在 jasmine 测试中使用 jquery 选择器不起作用