【问题标题】:ReactJS sent GET request, responded with 302 redirect, received CORS errorReactJS 发送 GET 请求,响应 302 重定向,收到 CORS 错误
【发布时间】:2018-03-12 21:01:10
【问题描述】:

这是我的堆栈:

  1. 前端服务器:Node + ReactJS (f.com)
  2. 后端服务器 (API):Golang (b.com)

我在开发环境中执行此操作,我使用create-react-app 通过npm start 命令运行我的前端服务器。我想使用sso.example.com/login 提供的 SSO 执行身份验证。理想情况下,只要在没有适当授权的情况下向后端服务器发出请求,就会通过 HTTP 302 重定向到 SSO 页面进行响应。所以顺序是:

  1. ReactJS 发送 GET 请求到b.com/users
  2. Golang 回复 http.Redirect("sso.example.com/login")
  3. ReactJS 应用程序从 sso.example.com 收到 CORS 错误,我无法控制添加 Access-Control-Allow-Origin:* 响应标头

如何成功重定向我的 GET 请求?

【问题讨论】:

  • 您的 React 应用是否从 b.comsso.example.com 获得 cors 错误响应?
  • @mkopriva 哦,是的,我刚刚将其添加到问题中。来自sso.example.com
  • 如果 sso.example.com 不允许跨源请求并且您无权访问其服务器来修改访问控制,那么我不确定您的 react 应用程序是否能够访问其资源.

标签: node.js reactjs go cors http-status-code-302


【解决方案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。谢谢你的建议!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-06-22
  • 1970-01-01
  • 2015-11-26
  • 2021-07-02
  • 2014-07-13
  • 1970-01-01
  • 2015-05-09
相关资源
最近更新 更多