reactjs - 可以将 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 请求之后,有一个带有 request Method=OPTIONS 并且具有与上面相同的 URL 的预检请求,即
https://express-app.xyz/path2?query_para1=abc&query_param2=123, requestMethod=OPTIONS
对于上面的 OPTIONS 请求,快递服务器以 status_code=204 响应,这意味着客户端不需要离开其当前页面...这是禁止我的应用程序进行最终重定向的原因,即在后端服务器响应之后使用 GET 请求,即使搜索引擎没有更新重定向 URL,我的反应应用程序也无法进行重定向
https://express-app.xyz/path2?query_para1=abc&query_param2=123
那么,这甚至可能吗?我假设 GET 请求之后的预检请求禁止客户端进行最终重定向。有人可以帮我解决这个问题吗
解决方案
我不确定我是否正确理解了您的问题,但您可以做的是发送一个帖子响应,该响应将指示客户端重定向到特定位置。这可以通过发送带有状态码 302 的响应和标头中的位置 (location:redirect_url) 来实现
欲了解更多信息:- https://en.m.wikipedia.org/wiki/HTTP_302
推荐阅读
- unetstack - 将噪声函数添加到通道模型
- node.js - 从控制器返回结果到路由节点js
- angular - 如何从 ABP Angular 6 进行外部 REST 调用
- c# - 当我尝试提交 Visual C# 项目文件时,Git 没有完全退出(退出代码 1)
- protocol-buffers - 无法将 gRPC 作为依赖项添加到 macOS 上的其他 Bazel 项目
- git - Github 可以推送远程引用的数量限制(在 x 时间跨度内)?
- python-3.x - 为什么我的数组中的值不通过我的全位加法器
- node.js - ../bootstrap/scss/_normalize 未找到
- android - SQLLite 更新根本不更新表(Android Studio with Kotlin)
- php - Opencart 的响应类:redirect 和 setOutput