【发布时间】:2018-03-31 23:18:43
【问题描述】:
当使用 Axios/http 请求设置标头时,我在向服务器发出 get 请求时遇到问题。我添加的任何标头(content-type 标头除外)都会导致相同的错误:“预检响应具有无效的 HTTP 状态代码 405。”在 Chrome、Firefox、Edge 等中都是如此。
具体来说,我需要为需要连接的服务添加 Authorization 标头以进行帐户验证。
使用 API URI 在 Postman 上运行 GET 请求工作正常,我得到了所需的响应。在浏览器中的 React 应用程序中运行它会给我 HTTP 405 错误。我在本地节点服务器上运行它,并使用http://localhost:3000 安装并启用了 Google 的 Allow-Control-Origin 扩展。
当我运行没有任何标头参数的请求时:
axios.get("https://myrequest.com/req/reqservice.svc/Login",).then(data => console.log(data)).catch(err => console.log(err))
请求工作正常。当我使用标头(任何标头,但在我的情况下是授权标头)运行它时,我收到错误:
axios.get("https://myrequest.com/req/reqservice.svc/Login", { headers: { "Authorization": "randomExample" } }).then(data => console.log(data)).catch(err => console.log(err))
那么,是什么导致了这个问题?如果是 CORS 或连接问题,我一般不会在提出请求时遇到问题吗?我一直在阅读 Stack Overflow,但没有给出解决方案的答案。我完全不知道该怎么做,而且我已经为此工作了好几天,但没有一个解决方案。任何意见将不胜感激。
【问题讨论】:
-
@tanaydin 这个问题没有解决问题。我错过了什么吗?
-
405 - 方法不允许...您的服务器可能不允许
OPTIONS方法 - 这是什么“Google 的 allow-control-origin 扩展”? -
@JaromandaX 这只是一个 Chrome 浏览器插件,允许浏览器和服务器之间进行 localhost 通信,而不会在 localhost 服务器上引起 CORS 问题。
标签: javascript .net node.js http-headers axios