出现 405 错误-在邮递员中工作时方法不允许招摇撞错

Posted

技术标签:

【中文标题】出现 405 错误-在邮递员中工作时方法不允许招摇撞错【英文标题】:Getting 405 error - method not allow error in swagger while working in postman 【发布时间】:2018-01-27 20:42:57 【问题描述】:

我正在尝试在 swagger 编辑器中运行我的 API。但是如果我在标头中传递oauth 令牌,它会给我一个错误,即不允许使用 405 方法。

另一件事是它在邮递员和终端中使用oauth 令牌完美运行。所以也许,问题在于招摇。

没有 oauth 令牌,它在 swagger 编辑器中完美运行。

如果没有在标头中传递 oauth 令牌,我的响应是

Request URL:http://172.168.1.28/crowdfunding_api/public/v1.0.1/categories
Request Method:GET
Status Code:200 OK
Remote Address:172.168.1.28:80
Referrer Policy:no-referrer-when-downgrade

并且 curl url 是响应为 200 时:

curl -X GET "http://172.168.1.28/crowdfunding_api/public/v1.0.1/categories" -H "accept: application/json"

在标头中使用 oauth 令牌我的响应是

Request URL:http://172.168.1.28/crowdfunding_api/public/v1.0.1/categories
Request Method:OPTIONS
Status Code:405 Method Not Allowed
Remote Address:172.168.1.28:80
Referrer Policy:no-referrer-when-downgrade

curl url 是响应为 405 时:

curl -X GET "http://172.168.1.28/crowdfunding_api/public/v1.0.1/categories" -H "accept: application/json" -H "authorization: 587ded3104e6ba7535642e6fcc217e7aa0f5f087"

【问题讨论】:

【参考方案1】:

尝试在您的 REST 端点包装器中添加对 OPTIONS 方法的支持。 只需使用类似的东西:

if (method == 'OPTIONS') return;

我有类似的 405 错误,这对我有帮助(似乎 CORS 首先发送 OPTIONS 来检查标头,是否允许请求)。

还要确保您的服务器返回标头:

Access-Control-Allow-Credentials: "true"
Access-Control-Allow-Origin: "*"
Access-Control-Allow-Headers: "origin, x-requested-with, content-type, authorization"
Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"

【讨论】:

以上是关于出现 405 错误-在邮递员中工作时方法不允许招摇撞错的主要内容,如果未能解决你的问题,请参考以下文章

在 Spring MVC 中映射 Ajax 请求:不允许出现错误 405 方法

为啥在禁用 webdav 后,在本地工作的 WebApi 的 DELETE 请求上出现 405 方法不允许错误?

在 PHPMailer 上出现错误 405(不允许)

YII 2,不允许的方法 (#405)

Azure应用服务错误405 - 无法完成请求。 (不允许的方法)

URLrewrite后不允许AngularJS / c#WebAPI 405方法