axios.post正在发送GET请求

ijnw1ujt  于 2023-10-18  发布在  iOS
关注(0)|答案(4)|浏览(167)

我有一个使用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请求时。

qrjkbowd

qrjkbowd1#

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

fgw7neuy

fgw7neuy2#

在我的例子中,我的服务器使用https
因此,http => https
那问题就解决了

0x6upsns

0x6upsns3#

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

zpf6vheq

zpf6vheq4#

一般来说,这是因为
1.由于某种原因,服务器重定向了原始POST请求

  1. Chrome开发工具由于某些未知原因隐藏了初始POST请求
    1.浏览器遵循重定向并根据Location报头发出GET请求
    典型的问题是:
  • 缺乏身份验证导致302重定向。
  • 使用http,服务器使用301302重定向到https

但是,可能还有其他原因,所以您应该检查发送到服务器的HTTP请求以了解发生了什么。像tcpflow这样的工具是合适的。在nginx上,你可以跟踪access.log文件。这个想法是为了了解初始POST请求发生了什么,以便可以纠正潜在的问题。

相关问题