向 oauth2 访问令牌发出 Ajax 请求时出现 CORS 问题

cli*_*int 5 ajax oauth google-api cors oauth-2.0

我正在从我的客户端向 google oauth 2 API'https://accounts.google.com/o/oauth2/auth?redirect_uri=http://blah.com&response_type=token&client_id....'进行ajax 调用以获取访问令牌,但出现以下错误:

对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问来源 ' http://blah-blah.com '

我希望调用是 ajax,以便在调用时不会打扰用户,url或者window.location.href换句话说,我如何获取访问令牌以使整个页面不加载,并且是否可以解决上述问题错误???

Ján*_*aša 8

OAuth2 身份验证端点在设计上不支持 AJAX。它是身份验证系统的入口点,因此您必须通过重定向到达那里。身份验证的结果再次重定向到您提供的 URL,因此 AJAX 在那里没有多大意义。

  • 感谢@Ján Halasa 的解释。我只是想知道:如果我的前端是 SPA(例如,Angular)。在他使用 Google 进行身份验证后,我如何发回 JWT 令牌,因为它现在是重定向,而不是客户端可以直接获取数据的普通“get”请求调用。 (2认同)