Google OAuth ASP.NET MVC 示例代码的 CORS 问题
CORS Issue with Google OAuth ASP.NET MVC sample code
我正在使用此代码示例 Web applications (ASP.NET MVC) 访问 Google 课堂 API。
我已经在 Google 云平台项目中添加了这些。
http://localhost:51234
作为授权 JavaScript 来源
http://localhost:51234/AuthCallback/IndexAsync
授权
重定向 URI
我网页中的一个按钮调用上面示例代码中给出的 /Home/IndexAsync
link
我刚刚将我的控制器从 HomeController
重命名为 GoogleClassroomController
所以我的按钮实际上调用了 /GoogleClassroom/IndexAsync
IndexAsync else
方法的一部分被执行
result.RedirectUri
在 else 部分的值是
https://accounts.google.com/o/oauth2/v2/auth?
access_type=offline&
response_type=code&
client_id=abc.apps.googleusercontent.com&
redirect_uri=http%3A%2F%2Flocalhost%3A51234%2FAuthCallback%2FIndexAsync&
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fclassroom.courses.readonly&
state=http%3A%2F%2Flocalhost%3A51234%2FGoogleClassroom%2FIndexAsync
在浏览器控制台中出现 2 个错误
Access to XMLHttpRequest at
'<above_URL>'
(redirected from 'http://localhost:51234/GoogleClassroom/IndexAsync')
from origin 'http://localhost:51234' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
GET <above_URL> net::ERR_FAILED
我做错了什么?
我们不能从 http://localhost:51234
调用 https://accounts.google.com/o/oauth2/v2/auth
吗?
我认为在云项目中将 http://localhost:51234
添加为授权 JavaScript 源将允许我进行此调用。
已修复!
my button actually calls /GoogleClassroom/IndexAsync
我们使用自定义函数进行这些调用。进一步调查后,我发现这个自定义函数在内部使用 $.ajax()
现在单击按钮,我写了 window.location.href = "/GoogleClassroom/IndexAsync";
,整个“使用 Google 登录”流程正常工作
我正在使用此代码示例 Web applications (ASP.NET MVC) 访问 Google 课堂 API。
我已经在 Google 云平台项目中添加了这些。
http://localhost:51234
作为授权 JavaScript 来源http://localhost:51234/AuthCallback/IndexAsync
授权 重定向 URI
我网页中的一个按钮调用上面示例代码中给出的 /Home/IndexAsync
link
我刚刚将我的控制器从 HomeController
重命名为 GoogleClassroomController
所以我的按钮实际上调用了 /GoogleClassroom/IndexAsync
IndexAsync else
方法的一部分被执行
result.RedirectUri
在 else 部分的值是
https://accounts.google.com/o/oauth2/v2/auth?
access_type=offline&
response_type=code&
client_id=abc.apps.googleusercontent.com&
redirect_uri=http%3A%2F%2Flocalhost%3A51234%2FAuthCallback%2FIndexAsync&
scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fclassroom.courses.readonly&
state=http%3A%2F%2Flocalhost%3A51234%2FGoogleClassroom%2FIndexAsync
在浏览器控制台中出现 2 个错误
Access to XMLHttpRequest at
'<above_URL>'
(redirected from 'http://localhost:51234/GoogleClassroom/IndexAsync')
from origin 'http://localhost:51234' has been blocked by CORS policy:
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
GET <above_URL> net::ERR_FAILED
我做错了什么?
我们不能从 http://localhost:51234
调用 https://accounts.google.com/o/oauth2/v2/auth
吗?
我认为在云项目中将 http://localhost:51234
添加为授权 JavaScript 源将允许我进行此调用。
已修复!
my button actually calls
/GoogleClassroom/IndexAsync
我们使用自定义函数进行这些调用。进一步调查后,我发现这个自定义函数在内部使用 $.ajax()
现在单击按钮,我写了 window.location.href = "/GoogleClassroom/IndexAsync";
,整个“使用 Google 登录”流程正常工作