【问题标题】:Client side includes on local machine客户端包括在本地机器上
【发布时间】:2012-07-19 15:11:32
【问题描述】:

我显然不能使用服务器端语言,这只是我桌面上的一个页面。

我尝试在 jquery 中使用 AJAX,但收到以下错误消息

抱歉,出现错误:0 [异常...“访问受限 URI 被拒绝”代码:“1012”nsresult:“0x805303f4 (NS_ERROR_DOM_BAD_URI)”位置:“https://ajax.googleapis.com/ajax /libs/jquery/1.7.2/jquery.min.js 行:4"]

这与浏览器不加载脚本有关,因为它是在本地托管的。那么有什么方法可以在不安装 Web 服务器软件的情况下将文件包含在本地计算机上?

【问题讨论】:

  • 您能否发布您的代码,以便我们查看您在做什么?
  • AJAX 不适用于打开本地文件并读取它们。一个 ajax 调用就是将一些数据发送到某个位置,而 JavaScript 假定接收方将知道如何处理它。如果我没记错的话,你正在做的事情类似于走到门口大喊sesame open thee,这在童话故事中有效,但在现实世界中,你需要一个门卫:)
  • 我错了。 @flem 有正确答案。

标签: javascript html


【解决方案1】:

这是一个XSS 错误。您不能向第三方网站(不在您的域中的网址)发出 http 请求。您需要使用代理向页面发出请求(或让所有者允许您的网站发出 XSS 请求)。

【讨论】:

    【解决方案2】:

    我写的一个库的无耻插件解决了类似的问题。我们希望能够为后端实现拼接 HTML 文件,而无需本地 HTTP 服务器实现服务器端包含的开销。该库适用于 HTTP 或本地文件系统。但是,正如存储库自述文件所述,您必须为 Chrome 运行时启用 --allow-file-access-from-files 标志。其他浏览器开箱即用。

    https://github.com/LexmarkWeb/csi.js

    <div data-include="/path/to/include.html"></div>
    

    上面将取/path/to/include.html的内容并用它替换div

    【讨论】:

      猜你喜欢
      • 2011-04-24
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-18
      相关资源
      最近更新 更多