Safari 阻止 URL 请求凭据,因为它是跨域请求

Posted

技术标签:

【中文标题】Safari 阻止 URL 请求凭据,因为它是跨域请求【英文标题】:Safari blocks URL from asking for credentials because it's a cross-origin request 【发布时间】:2019-03-12 21:39:31 【问题描述】:

由于 ios 12 Safari 阻止我的 url 请求凭据,因为它是一个跨域请求。 iOS 11 一切正常。所以我认为所有标题都设置正确。

控制台输出为:

Blocked *URL* from asking for credentials because it is a cross-origin request.

我在发行说明中找不到任何表明可能发生变化的内容。

https://developer.apple.com/documentation/safari_release_notes/safari_12_release_notes

你们中是否有人知道 Apple 在 Safari 12 中进行了哪些更改以提高安全性/阻止跨域请求请求凭据?

感谢您的帮助!

【问题讨论】:

Webkit 不允许跨域子资源请求凭据 trac.webkit.org/changeset/228486/webkit 但必须可以解决此问题... 【参考方案1】:

crossorigin 添加到脚本元素应根据this answer 解决此问题。 示例:

<script src="my-code.js" type="module" crossorigin></script>

另见https://developer.mozilla.org/en-US/docs/Web/html/CORS_settings_attributes

【讨论】:

以上是关于Safari 阻止 URL 请求凭据,因为它是跨域请求的主要内容,如果未能解决你的问题,请参考以下文章

什么是跨域及如何解决json和jsonp

Ajax中的跨域请求(跨源请求)

jQuery ajax 请求因为跨域而被阻止

Cors跨域

什么是跨域?跨域请求资源的方法有哪些?

什么是跨域?跨域请求资源的方法有哪些?