问题
This is my stack:
- Frontend server: Node + ReactJS (
f.com
) - 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:
- ReactJS sends GET request to
b.com/users
- Golang responded with http.Redirect("
sso.example.com/login
") - ReactJS app gets CORS error from
sso.example.com
of which I don't have control of addingAccess-Control-Allow-Origin:*
respond header
How can I redirect my GET request successfully?
回答1:
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/
来源:https://stackoverflow.com/questions/46514522/reactjs-sent-get-request-responded-with-302-redirect-received-cors-error