是否可以将 POST 请求重定向为另一个 GET 请求

问题描述

我正在开发一个反应应用程序,由于机密性,需要在主体内部发送对象参数。所以我正在像这样从反应应用客户端向后端服务器发出 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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...