Safari 'origin is not allowed' 阻止 AppEngine 身份识别代理 https://accounts.google.com/o/oauth2/v2/auth
Safari 'origin is not allowed' blocking AppEngine Identity-aware proxy https://accounts.google.com/o/oauth2/v2/auth
仅当尝试加载启用了身份识别代理的 AppEngine 站点时,才会在 Safari 浏览器上出现重定向问题。它显示请求被重定向到 https://accounts.google.com/o/oauth2/v2/auth 但随后失败。
Origin is not allowed by Access-Control-Allow-Origin
如果我在 Safari 的新选项卡中手动加载 url,我会得到:AppEngine 错误代码 9。
我认为这可能与 Safari 更严格的 cookie 规则有关,不知何故 IAP 会话 cookie 被忽略了,因为它来自另一个域?
Safari 似乎有更严格的 CORS 规则,这可能需要额外的规则。特别是如果使用 AppEngine IAP。
如果使用 <img>
、<video>
、<link>
和 <script>
标签,并使用 CORS 从其他域加载内容。您需要 crossorigin="use-credentials"
属性以允许 cookie 共享:
<script src="https://example.com/script.js" crossorigin="use-credentials"></script>
https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes
注意:这不太安全。
Angular 有一个构建命令,它会自动为您添加属性:
ng build --prod --crossOrigin=use-credentials
仅当尝试加载启用了身份识别代理的 AppEngine 站点时,才会在 Safari 浏览器上出现重定向问题。它显示请求被重定向到 https://accounts.google.com/o/oauth2/v2/auth 但随后失败。
Origin is not allowed by Access-Control-Allow-Origin
如果我在 Safari 的新选项卡中手动加载 url,我会得到:AppEngine 错误代码 9。
我认为这可能与 Safari 更严格的 cookie 规则有关,不知何故 IAP 会话 cookie 被忽略了,因为它来自另一个域?
Safari 似乎有更严格的 CORS 规则,这可能需要额外的规则。特别是如果使用 AppEngine IAP。
如果使用 <img>
、<video>
、<link>
和 <script>
标签,并使用 CORS 从其他域加载内容。您需要 crossorigin="use-credentials"
属性以允许 cookie 共享:
<script src="https://example.com/script.js" crossorigin="use-credentials"></script>
https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes
注意:这不太安全。
Angular 有一个构建命令,它会自动为您添加属性:
ng build --prod --crossOrigin=use-credentials