为了开发目的,我需要在我的机器上禁用Safari(在Windows下)中的同源策略。
在Chrome中,可以通过使用标志--disable-web-security
来实现。在Safari中是否有等效的标志或隐藏设置?
为了开发目的,我需要在我的机器上禁用Safari(在Windows下)中的同源策略。
在Chrome中,可以通过使用标志--disable-web-security
来实现。在Safari中是否有等效的标志或隐藏设置?
如果你想在Safari(我使用的是9.1.1版本)中禁用同源策略,那么你只需要启用开发者菜单,然后从开发菜单中选择“禁用跨源限制”。
较新版本的Safari允许您禁用跨域限制。只需要从“首选项>>高级”启用开发者菜单,然后从开发者菜单中选择“禁用跨域限制”即可。
如果您仅需要本地文件,请启用开发者菜单,然后从开发者菜单中选择“禁用本地文件限制”即可。
跳转到,
Safari -> 首选项 -> 高级
然后在底部勾选 在菜单栏中显示“开发”菜单
然后在“开发”菜单中勾选 禁用跨源限制
很遗憾,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 9中有一个选项可以禁用跨域限制,这与上述的本地文件限制不同。
如果您正在使用Mac上的Develop菜单,通过将iPhone插入Mac并检查手机上的网站来调试iOS Safari,则如果禁用跨域限制
选项变灰,按照以下步骤进行操作。
(已在iOS 15.3.1和桌面Safari 14.0.1上测试)
这些答案大多已经过时了。最新的Safari 14.0.2(在2021年)有一个选项可以禁用跨域限制
,但是如果路径名为../../这种类型的路径,则无法正常工作;即使Safari正确地解析为本地文件路径,它仍然不允许加载该文件,尽管该文件存在。这是Safari 14中最近出现的错误,在13中没有发生。