有没有办法忽略本地提供的网页的同源策略(文件:///)[重复]

Posted

技术标签:

【中文标题】有没有办法忽略本地提供的网页的同源策略(文件:///)[重复]【英文标题】:Is there a way to ignore same-origin policy for web pages served locally (file:///) [duplicate] 【发布时间】:2019-01-21 22:41:56 【问题描述】:

我正在处理将作为产品压缩文档包含在内的网页,因此它应该被解压缩并且只能通过file:///在本地访问

网页已经存在,我只需对它们进行改造即可。他们没有CSS。我想添加CSS。为了避免更改数千页,我想通过 javascript 插入 CSS。页面在一个框架中(另一个框架是菜单)。将父窗口中的 CSS 添加到框架会产生错误:例如,当尝试访问框架的 document 对象时,Uncaught DOMException: Blocked a frame with origin "null" from accessing a cross-origin frame.

有没有办法忽略以这种方式提供的网页的同源策略?

This question 似乎不是重复的,因为它要使用localhost

【问题讨论】:

你想做什么违反同源策略?你能做一些不同的事情吗? 如果您想从您的网页提供一个 zip 文件,它必须通过后端完成,所以这是我的理解。您可以在 localhost 上进行,但它应该是您的后端抓取并交付您的 zip 文件。这对客户来说并不方便,因为他们通常不会为此任务设置 localhost 环境。 @Brad 我正在对产品的现有 html 文档进行改造,将其放入框架中。页面很多,因此为避免更改现有的 html 页面,我想将 CSS(通过 JavaScript)插入到该框架上出现的所有页面。 这是不可能的,而且有充分的理由。如果可能的话,网站将毫无根据地访问您文件系统中的任何文件,他们可以猜测到的路径。 FRAME 联系父 DOM,而不是让父 DOM 联系子 FRAME。然后家长可以回复。子 DOM 也可以传回对自身的引用,以便从父级进行操作。 ***.com/a/2620789/105539 【参考方案1】:

Firefox 作为 quite simple Add-On 用于此。

【讨论】:

Firefox 将当前文件夹及其子文件夹视为同源。所以可能不需要添加。【参考方案2】:

您可以启动 Chrome 禁用网络安全--disable-web-security

它允许的不仅仅是规避 CORS,但如果您只是出于开发目的使用自己的代码库这样做,它是安全的。

在开始无安全会话之前,您应该关闭任何 chrome 窗口。

chromium-browser --disable-web-security --user-data-dir="[some directory here]"

【讨论】:

以上是关于有没有办法忽略本地提供的网页的同源策略(文件:///)[重复]的主要内容,如果未能解决你的问题,请参考以下文章

开发机上绕过Chrome同源策略的办法

同源策略

如何将一个本地文件的同源策略违规绕过到另一个本地文件?

浏览器的跨域问题的解决办法

Ajax

4.同源策略与跨域请求