ChatGPT解决这个技术问题 Extra ChatGPT

在 Safari 中禁用同源策略

出于开发目的,我需要在我的机器上禁用 Safari(在 Windows 上)中的同源策略。

在 Chrome 中,这可以通过使用标志 --disable-web-security 启动来完成。 Safari 中是否有等效的标志或隐藏设置?


t
ttemple

如果你想在 Safari 上禁用同源策略(我有 9.1.1),那么你只需要启用开发者菜单,然后从开发菜单中选择“禁用跨域限制”。


这是正确的答案。您必须重新加载网页。
对于德国人:“Ursprungsübergreifende Beschränkugen deaktivieren”
不工作。在 Safari 11.0.3 中,我禁用了跨域限制,但仍然相同。
奇迹般有效!
这适用于 Safari 12.0.3。我还必须清除缓存(使用快捷方式或在开发人员菜单中 --> 空缓存)+按照@TlmaK0 的建议重新加载网页。
s
skymook

更高版本的 Safari 允许您禁用跨域限制。只需从 Preferences >> Advanced 启用开发者菜单,然后从开发菜单中选择“Disable Cross-Origin Restrictions”。

如果你只想要本地,那么你只需要启用开发者菜单,然后从开发菜单中选择“禁用本地文件限制”。


此菜单项位于开发菜单中,需要在高级“在菜单栏中显示开发菜单”下的首选项中启用。但这似乎并没有避免 cors 问题。
我在 Mavericks 上运行 Safari 7。很高兴地说这仍然有效。
同源策略和本地文件限制不是一回事,这个答案没有正确回答问题。
您可以关闭本地文件限制,但要测试具有同源策略问题的跨浏览器内容,请使用 firefox 或 chrome。对于 chrome 和 OS X,请参见此处:stackoverflow.com/a/6083677/2526914
这个答案似乎在帮助一些人运行本地文件。然而,它对 CORS 没有帮助。我可以建议您提供一个人们可以投票的解决方案,而不是投反对票吗?
P
Pramodya Abeysinghe

去,

Safari -> 首选项 -> 高级

然后在底部勾选在菜单栏中显示开发菜单

然后在开发菜单中勾选禁用跨域限制


它适用于桌面野生动物园,但如何在移动设备上切换此选项?
不确定我们在移动 Safari 上是否有相同的选项。但是设置 -> Safari -> 高级你可能会发现一些东西
对于移动设备的 iOS Safari,请参阅this answer
B
Brad Rippe

不幸的是,Safari 没有等效项,并且参数 --disable-web-security 不适用于 Safari。

如果您有权访问服务器端应用程序,则可以修改 https 响应标头以允许访问。主要是 Access-Control-Allow-Origin 标头。修改它将允许 Safari 访问该资源。有关有用的响应标头的更多信息,请参阅 https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS#Access-Control-Allow-Origin


可以确认 Safari 没有命令行参数。 discussions.apple.com/thread/8044532
G
Gofake1

Safari 9 中有一个选项可以禁用跨域限制,这与上面提到的本地文件限制不同。


E
Edward De Jong

这些答案中的大多数都是旧的。最新的 Safari 14.0.2(2021 年),有 Disable Cross-Origin Restrictions 选项,但是,如果路径有 ../../ 类型的路径名,它就不起作用;即使 Safari 正确解析为本地文件路径,它仍然不允许加载该文件,即使它存在。这是 Safari 14 中最近的一个错误,在 13 中没有发生。


s
samurai_jane

对于将 iPhone 插入 Mac 并使用 Mac 的 Develop 菜单在手机上检查该网站的 iOS Safari 中调试网站的用户,如果 Disable Cross-Origin Restrictions 选项灰显,请按照以下步骤操作.

单击 Mac 上的 Safari 菜单

单击首选项...

单击“隐私”选项卡

取消对防止跨站点跟踪的复选标记

刷新手机页面

在您的计算机上贴一张便签,提醒您在完成工作后将复选标记放回原处

(在 iOS 15.3.1 和桌面 Safari 14.0.1 上测试)