Node.js ReactJS发送GET请求,响应302重定向,收到CORS错误

Node.js ReactJS发送GET请求,响应302重定向,收到CORS错误,node.js,reactjs,go,cors,http-status-code-302,Node.js,Reactjs,Go,Cors,Http Status Code 302,这是我的堆栈: 前端服务器:Node+ReactJS(f.com) 后端服务器(API):Golang(b.com) 我是在开发环境中这样做的,在这个环境中,我通过npmstart命令运行我的前端服务器。我想使用SSO.example.com/login上提供的SSO执行身份验证。理想情况下,每当有未经适当授权的对后端服务器的请求时,都会通过HTTP 302重定向到SSO页面进行响应。所以顺序是: ReactJS将GET请求发送到b.com/users Golang用http.Redirect(

这是我的堆栈:

  • 前端服务器:Node+ReactJS(
    f.com
  • 后端服务器(API):Golang(
    b.com
  • 我是在开发环境中这样做的,在这个环境中,我通过
    npmstart
    命令运行我的前端服务器。我想使用
    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错误,我无法控制添加
    访问控制允许源:
    响应头

  • 如何成功重定向GET请求?

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

    您可以使用react进行操作,这很复杂:

    或者使用纯JavaScript使用
    窗口
    ,这很容易,但可能会导致浏览历史记录出现问题:

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

    你的react应用程序是从
    b.com
    还是从
    sso.example.com
    获得cors错误响应?@mkopriva哦,是的,我刚刚在问题中添加了这一点。它来自
    sso.example.com
    如果
    sso.example.com
    不允许跨源请求,并且您无法访问其服务器来修改访问控制,那么我不确定您的react应用程序是否能够访问其资源。啊,好的,这就是我的想法。我只是在想,在这个场景中,我是否可以做些什么来避免重定向上的CORS。谢谢你的建议!