【问题标题】: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 也可以传回对自身的引用,以便从父级进行操作。 stackoverflow.com/a/2620789/105539

标签: javascript html cors same-origin-policy


【解决方案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]"

【讨论】:

    猜你喜欢
    • 2011-03-29
    • 2015-04-06
    • 2014-07-25
    • 2020-07-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 2019-01-23
    相关资源
    最近更新 更多