ReactJS发送了GET请求,响应为302重定向,收到了CORS错误

这是我的堆栈:</ p>


  1. 前端服务器: 节点+ ReactJS( f.com </ code>)</ li>
  2. 后端服务器(API):Golang( b.com </ code>)</ li>
    < / ol>

    我正在使用创建的开发环境中进行此操作 -react-app 通过 npm start </ code>命令运行我的前端服务器。 我想使用 sso.example.com/login </ code>上提供的SSO执行身份验证。 理想情况下,每当有未经适当授权的后端服务器请求时,都将通过HTTP 302重定向到SSO页面进行响应。 因此顺序如下:</ p>


    1. ReactJS将GET请求发送到 b.com/users </ code> </ li>
    2. Golang响应 http.Redirect(“ sso.example.com/login </ code>”)</ li>
    3. ReactJS应用从 sso.example.com </ code>中获得CORS错误 我无法控制添加 Access-Control-Allow-Origin:* </ code>响应标头</ li>
      </ ol>

      如何重定向我的GET请求 成功吗?</ p>
      </ div>

展开原文

原文

This is my stack:

  1. Frontend server: Node + ReactJS (f.com)
  2. Backend server (API): Golang (b.com)

I'm doing this in development environment where I use create-react-app to run my frontend server via npm start command. I want to perform authentication using SSO served at sso.example.com/login. Ideally whenever there's a request to the Backend server without proper authorization, it will be responded with HTTP 302 Redirect to the SSO page. So the sequence is:

  1. ReactJS sends GET request to b.com/users
  2. Golang responded with http.Redirect("sso.example.com/login")
  3. ReactJS app gets CORS error from sso.example.com of which I don't have control of adding Access-Control-Allow-Origin:* respond header

How can I redirect my GET request successfully?

doumenshi1475
doumenshi1475 如果sso.example.com不允许跨源请求,并且您无权访问其服务器来修改访问控制,那么我不确定您的react应用程序将能够访问其资源。
接近 3 年之前 回复
douyao7390
douyao7390 哦,是的,我只是将其添加到问题中。来自sso.example.com
接近 3 年之前 回复
douza9835
douza9835 您的React应用程序是否从b.com或sso.example.com获得了cors错误响应?
接近 3 年之前 回复

1个回答



在您的情况下,在客户端的浏览器中进行重定向会更容易,因此不会出现CORS问题( 因为您可以直接从SSO网站url访问它。)</ p>

您可以通过react来完成,这很复杂:使用React Router V4以编程方式进行导航 </ p>

,或者使用 window </ code> 普通的JavaScript,很简单,但可能会导致浏览历史记录出现问题:</ p>

  window.location.href =“ https://www.example.com”; 
</ 代码> </ pre>

https://appendto.com/2016/04/javascript-redirect-how-to-redirect-a-web-page-with-javascript/ </ p>
</ DIV>

展开原文

原文

In your case, it would be easier to do the redirection in browser on the client side, so you won't have CORS issues (because you are accessing it from the SSO website url directly).

You can either do it with react, which is complicated: Programmatically navigate using react router V4

Or do it with window with plain JavaScript, which is easy but might cause problems with browsing history:

window.location.href = "https://www.example.com";

https://appendto.com/2016/04/javascript-redirect-how-to-redirect-a-web-page-with-javascript/

dsu5188
dsu5188 嗯,那是我的想法。 我只是在想是否有什么办法可以避免在这种情况下重定向时发生CORS。 感谢您的建议!
接近 3 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问