有没有办法忽略本地提供的网页的同源策略(文件:///)[重复]
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]"
【讨论】:
以上是关于有没有办法忽略本地提供的网页的同源策略(文件:///)[重复]的主要内容,如果未能解决你的问题,请参考以下文章