axios.post正在发送GET请求

时间:2017-10-06 17:45:54

标签: javascript reactjs axios

我有一个使用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 个答案:

答案 0 :(得分:19)

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

答案 1 :(得分:5)

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

所以http => https

然后问题解决了。

答案 2 :(得分:1)

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

引起的

答案 3 :(得分:1)

通常发生这种情况是因为i)在某种情况下,由于某些原因i)原始POST请求被服务器重定向,并且ii)chrome dev工具出于某种未知原因隐藏了初始POST请求。典型的问题是:

  • 缺少身份验证会导致302 redirect
  • 使用http,服务器通过https301将其重定向到302

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

相关问题