axios.post 正在发送 GET 请求

IT技术 javascript reactjs axios
2021-04-02 05:58:17

我有一个使用 react/axios 的 chrome 扩展。在那个应用程序中,我发送了一个像这样的帖子请求:

export const createComment = payload => {
  const url = `${COMMENTS_BASE_URL}`;
  const promise = axios.post(url, payload);
  return { type: CREATE_COMMENT, promise };
}

尽管很明显是 axios.post(),但浏览器正在向 url 发送 GET 请求,这是不允许的(响应 405)。我也尝试过使用,axios({ method: 'post', ... })但浏览器发送 GET 请求时也会发生同样的事情。

4个回答

如果有,请尝试删除 COMMENTS_BASE_URL 中的尾部斜杠。即使用“/resource”而不是“/resource/”。我们遇到了同样的问题。

你救了我的一天!
2021-05-23 05:58:17
伙计!你救我!我已经与这个错误斗争了两个小时,我一直认为这是我后端的错误,直到我厌倦了试图看看什么和在哪里,我来到了这里。
2021-05-27 05:58:17
在我的情况下,我不得不使用https://www.example.com而不是https://example.com
2021-05-27 05:58:17
太好了,这为我解决了!我发现当 Axios 收到 301(永久移动)时会发生此问题,因为它进行了重定向但也将方法更改为“GET”。根本原因是 URL 格式错误(正如 Pavel 所说,检查路径末尾的斜杠是否需要)。由于这可能会导致意外行为,因此我选择添加maxRedirects: 0Axios 配置。
2021-06-01 05:58:17
我实际上在最后添加了一个斜杠,它开始工作了。:-/ 这是很奇怪的行为。
2021-06-17 05:58:17

就我而言,我的服务器使用 https

所以,http=>https

然后问题解决了。

这个帮了我。
2021-05-26 05:58:17
这也是我的情况
2021-06-01 05:58:17
这个也帮了我
2021-06-22 05:58:17

发生这种情况时,URL 从 POST 调用重定向,GET 在重定向后发生。最常见的重定向是由不需要的尾部斜杠或 http 重定向到 https 引起的

一般来说,这是因为

  1. 原始 POST 请求由于某种原因被服务器重定向,并且
  2. 在这种情况下,chrome 开发工具出于某种未知原因隐藏了初始 POST 请求。

典型的问题是:

  • 缺乏身份验证导致302 redirect.
  • 使用http该服务器重定向到https一个301302

但是,可能还有其他原因,因此您应该检查发送到服务器的 HTTP 请求以了解发生了什么。类似的工具tcpflow是合适的。在 nginx 上,您可以拖尾access.log文件。这个想法是了解初始 POST 请求会发生什么,以便可以更正潜在问题。

和 www 一样。重定向
2021-06-06 05:58:17