Javascript axios.post正在发送GET请求
我有一个使用react/axios的chrome扩展。在该应用程序中,我发送了一个post请求,如下所示:Javascript axios.post正在发送GET请求,javascript,reactjs,axios,Javascript,Reactjs,Axios,我有一个使用react/axios的chrome扩展。在该应用程序中,我发送了一个post请求,如下所示: export const createComment = payload => { const url = `${COMMENTS_BASE_URL}`; const promise = axios.post(url, payload); return { type: CREATE_COMMENT, promise }; } 尽管它显然是axios.post(),但浏览
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请求时也会发生同样的情况。如果有注释,请尝试删除注释\u BASE\u URL中的尾随斜杠。
i、 e.使用“/resource”而不是“/resource/”。我们也遇到了同样的问题。在我的情况下,我的服务器使用
https
所以,http
=>https
然后问题就解决了。这种情况发生了,然后URL从POST调用中重定向,GET在重定向后发生。
大多数常见的重定向都是由不需要的尾部斜杠或http重定向到https引起的。通常,这种情况是因为i)服务器出于某种原因重定向了原始POST请求,ii)在这种情况下,chrome开发工具出于某种未知原因隐藏了初始POST请求。典型问题包括:
- 缺少身份验证导致
302重定向
- 使用
,服务器通过http
或301
重定向到302
https
但是,可能还有其他原因,因此您应该检查发送到服务器的HTTP请求,以了解发生了什么。像
tcpflow
这样的工具是合适的。在nginx上,您可以跟踪access.log
文件。我们的想法是了解最初的POST请求发生了什么,这样就可以纠正根本问题。所以这与您嵌入的chrome扩展有关,因为axios.POST()应该可以在普通网页上工作?您救了我一天!实际上,我在末尾添加了一个斜杠,它开始工作了。:-/这是很奇怪的行为,伙计!你救了我!我已经和这个错误斗争了两个小时,我一直认为这是我后端的一个错误,直到我厌倦了尝试看什么和在哪里,我来到这里。在我的情况下,我必须使用https://www.example.com
而不是https://example.com
这一条对我有帮助。www.redirections也是如此