问题描述
我正在开发一个反应应用程序,由于机密性,需要在主体内部发送对象参数。所以我正在像这样从反应应用客户端向后端服务器发出 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 请求之后的预检请求禁止客户端进行最终重定向。有人可以帮我解决这个问题
解决方法
我不确定我是否正确理解您的问题,但您可以做的是发送一个帖子响应,该响应将指示客户端重定向到特定位置。 这可以通过发送带有状态码 302 和标头中的位置的响应来实现(location:redirect_url)
欲了解更多信息:- https://en.m.wikipedia.org/wiki/HTTP_302