Php AWS web应用程序CORS错误

Php AWS web应用程序CORS错误,php,amazon-ec2,cors,google-api-php-client,Php,Amazon Ec2,Cors,Google Api Php Client,我试图通过我的AWS EC2 web应用程序(基于PHP)使用Google教室API,但我一直遇到CORS错误 我遵循本教程尝试并请求一个新范围: 当用户单击按钮时,我向服务器发出AJAX请求,以收集所需的详细信息,然后调用 $auth_url = $client->createAuthUrl(); header('Access-Control-Allow-Origin: *'); header('Location: ' . filter_var($auth_url, FILTER_SAN

我试图通过我的AWS EC2 web应用程序(基于PHP)使用Google教室API,但我一直遇到CORS错误

我遵循本教程尝试并请求一个新范围:

当用户单击按钮时,我向服务器发出AJAX请求,以收集所需的详细信息,然后调用

$auth_url = $client->createAuthUrl();
header('Access-Control-Allow-Origin: *');
header('Location: ' . filter_var($auth_url, FILTER_SANITIZE_URL),false);
但我在浏览器控制台中遇到以下错误

Failed to load https://accounts.google.com/o/oauth2/auth?response_type=code&access_type=online&client_id=xxxx.apps.googleusercontent.com&redirect_uri=https%3A%2F%2Fexample.com%2Fsubdir%2Fpage%2Fajax%2Fconfirm_classroom_auth.php&state&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fclassroom.rosters.readonly&approval_prompt=auto&include_granted_scopes=true: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://example.com' is therefore not allowed access. The response had HTTP status code 405.

除了知道CORS是什么之外,我对CORS还不是很熟悉,所以我非常感谢您对我需要做什么来修复这个问题的建议。

我不太清楚为什么使用
header()
会导致错误,但我找到了解决方法


只需将
authURL
返回到my AJAX success函数,然后调用
窗口。open(authURL)
工作正常,没有CORS错误

在运行
$client->createAuthUrl()之前是否尝试过设置标题操作?您是否为oauth配置在google api控制台中配置了哪些域作为白名单?例如“接受来自这些HTTP引用者(网站)的请求”@Darren我只是尝试了一下,什么都没有changed@Scuzzy在GoogleAPI控制台中,在我发布这个问题之前,我已经将我的网站设置为“授权JavaScript源代码”和“授权重定向URI”。除非还有别的地方我也需要加上吗?不,那听起来是正确的设置位置。您是否有www和非www版本,以及本地开发域(如果需要)?