加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

通过“file://”内容中的“ajax”访问相对URL

发布时间:2020-12-15 22:51:14 所属栏目:百科 来源:网络整理
导读:我正在整理一些演示页面,我要展示的其中一件事涉及动态获取 HTML片段以及后续处理.因此,我有这样简单的jQuery代码: $('#target').load('./content_fragment.html',function() { $(this).doSomething();}); 我正在从file:// URL做这一切,因为整个事情是我(
我正在整理一些演示页面,我要展示的其中一件事涉及动态获取 HTML片段以及后续处理.因此,我有这样简单的jQuery代码:
$('#target').load('./content_fragment.html',function() {
  $(this).doSomething();
});

我正在从file:// URL做这一切,因为整个事情是我(可能)从拇指驱动器或其他东西运行的演示文稿的一部分.因此,“content_fragment.html”只是另一个本地文件,就像包含该代码的主页一样.

现在这一切在Firefox或Safari中运行得很好,相对URL的其他用途在Chrome中运行良好(iframe“src”URL,图像,脚本,css等),但Chrome只是不会关注那些“.load ()“请求”.如果我压缩内容并将其部署到Web服务器,然后通过其“http:”URL获取,那么Chrome工作正常.如果它不起作用,我在Chrome控制台中看不到任何错误;它只是不取内容.我在Linux和XP上尝试过使用Chrome,效果相同. (与Safari或Firefox相同的文件:// URL始终按照我的预期进行操作并加载内容.)

所以我的问题是,这种古怪只是一个Chrome怪癖,还是有一些关于XMLHttpRequests和file:// URL的内在问题?换句话说,Chrome是做正确的事情,意味着其他浏览器坏了吗?

解决方法

您可以在启动chrome时将–allow-file-access-from-files添加到命令行以禁用此安全功能:)

这是一个错误吗?也许,也许不是,正在发生的事情是它不将文件://视为单个域,对不同文件的请求被视为不同的域,因此被SOP rules阻止.这是Chrome / Chromium开发人员的选择,无论是正确的一个取决于你的观点我想.

在Google代码的Chrome问题部分中有很多关于此问题的讨论,您可以找到感兴趣的讨论,here和here.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读