POST 方法自动转换为 OPTIONS
Posted
技术标签:
【中文标题】POST 方法自动转换为 OPTIONS【英文标题】:POST Method got converted to OPTIONS automatically 【发布时间】:2015-07-14 18:18:42 【问题描述】:基本上我使用的是 POST 方法,但它会自动转换为 OPTIONS 方法。我知道浏览器会这样做,但也读到它很好,应该得到 201 的响应,但在我的情况下,它的行为不像预期的那样,我也在请求标头中尝试了 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
有谁能告诉我这个问题的原因,以及在经过足够的研究之后,这可能是什么原因在我看来一切都很好。 提前致谢。
【问题讨论】:
您的 OPTIONS 响应是什么。不是201吗? 是跨域请求吗? OPTIONS 响应是 405,我认为可能是跨域问题,不确定。 搜索 CORS 预检请求 AJAX in Chrome sending OPTIONS instead of GET/POST/PUT/DELETE? 的可能重复项 【参考方案1】:您可能会在跨域资源共享的 POST 请求期间看到飞行前检查。我不知道您的网络服务器需要如何设置才能支持此功能,但这篇 Wikipedia 文章可能是第一个帮助:http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
最简单的解决方案是在与您加载网页的位置相同的源上执行 POST 请求。反向代理可能是一个合理的解决方案。
【讨论】:
以上是关于POST 方法自动转换为 OPTIONS的主要内容,如果未能解决你的问题,请参考以下文章
如何防止“+”在 Django request.POST 方法中转换为空格?
Kotlin > Spring Boot > 使用路由器 DSL,POST 方法主体,无法将 JSON 转换为 POJO