【发布时间】:2021-05-11 20:27:46
【问题描述】:
我正在开发一个反应应用程序,由于机密性,需要在主体内发送对象参数。所以我正在像这样从反应应用程序客户端向后端服务器发出 POST 请求
axios
.post('htps://java.backend.xyz/path1', {
data: password,
})
.catch(function (error) {
handle(error);
});
发出此 POST 请求后,有一个带有“method = OPTIONS”和“URL='htps://java.backend.xyz/path1'”的预检请求... java-backend-server 以 status_code 响应该请求=200。
在上述预检请求之后,java-backend-server 处理 POST 请求,而不是发送响应,java-backend-server 使用 GET 请求(即重定向)进行响应,例如:
https://express-app.xyz/path2?query_para1=abc&query_param2=123, requestMethod=GET
为了响应上面的 GET 请求,express 应用响应 status_code=200
但是在这个 GET 请求之后,有一个带有请求 Method=OPTIONS 并且具有与上面相同的 URL 的预检请求,即
https://express-app.xyz/path2?query_para1=abc&query_param2=123, requestMethod=OPTIONS
对于上面的 OPTIONS 请求,快递服务器以 status_code=204 响应,这意味着客户端不需要离开其当前页面...这是禁止我的应用程序进行最终重定向的原因,即在后端服务器响应 GET 请求,即使搜索引擎没有更新重定向 URL,我的 react 应用也无法进行重定向
https://express-app.xyz/path2?query_para1=abc&query_param2=123
那么,这甚至可能吗?我假设 GET 请求之后的预检请求禁止客户端进行最终重定向。有人可以帮我解决这个问题
【问题讨论】:
-
这甚至可以在不期望响应的情况下发送 POST 请求吗?请帮忙
-
如果没有人可以在这里向我建议我应该使用哪种请求方法而不是 POST,实际上需要在正文中发送凭据,而不是期望任何响应。在响应中,我期望重定向
标签: reactjs express http preflight http-status-code-204