ReactJS 发送 GET 请求,响应 302 重定向,收到 CORS 错误
Posted
技术标签:
【中文标题】ReactJS 发送 GET 请求,响应 302 重定向,收到 CORS 错误【英文标题】:ReactJS sent GET request, responded with 302 redirect, received CORS error 【发布时间】:2018-03-12 21:01:10 【问题描述】:这是我的堆栈:
-
前端服务器:Node + ReactJS (
f.com
)
后端服务器 (API):Golang (b.com
)
我在开发环境中执行此操作,我使用create-react-app 通过npm start
命令运行我的前端服务器。我想使用sso.example.com/login
提供的 SSO 执行身份验证。理想情况下,只要在没有适当授权的情况下向后端服务器发出请求,就会通过 HTTP 302 重定向到 SSO 页面进行响应。所以顺序是:
-
ReactJS 发送 GET 请求到
b.com/users
Golang 回复 http.Redirect("sso.example.com/login
")
ReactJS 应用程序从 sso.example.com
收到 CORS 错误,我无法控制添加 Access-Control-Allow-Origin:*
响应标头
如何成功重定向我的 GET 请求?
【问题讨论】:
您的 React 应用是否从b.com
或 sso.example.com
获得 cors 错误响应?
@mkopriva 哦,是的,我刚刚将其添加到问题中。来自sso.example.com
如果 sso.example.com
不允许跨源请求并且您无权访问其服务器来修改访问控制,那么我不确定您的 react 应用程序是否能够访问其资源.
【参考方案1】:
在您的情况下,在客户端的浏览器中进行重定向会更容易,因此您不会遇到 CORS 问题(因为您是直接从 SSO 网站 url 访问它)。
你可以用 react 来做,这很复杂:Programmatically navigate using react router V4
或者使用纯 javascript 使用 window
,这很简单,但可能会导致浏览历史记录出现问题:
window.location.href = "https://www.example.com";
https://appendto.com/2016/04/javascript-redirect-how-to-redirect-a-web-page-with-javascript/
【讨论】:
啊,好吧,我就是这么想的。我只是想在这种情况下是否可以采取任何措施来避免重定向时出现 CORS。谢谢你的建议!以上是关于ReactJS 发送 GET 请求,响应 302 重定向,收到 CORS 错误的主要内容,如果未能解决你的问题,请参考以下文章