小编典典

对本地文件系统的AJAX请求在Chrome中不起作用?[重复]

ajax

我正在努力使用jQuery从XML动态创建UI。我的jQuery在Firefox中可以使用,但在Chrome中不能使用。它给了我这个控制台错误:

跨源请求仅支持以下协议方案:http,数据,chrome,chrome扩展名,https,chrome-extension-resource。

以下是我的jQuery代码,该代码可在Firefox上运行,但不能在Google chrome上运行:

$.ajax({
    url: 'file:///home/satendra/dndExamples/avisDnD/file.xml',
    success: function(xml) {
        $(xml).find('Tab').each(function() {
            var id = $(this).attr('URL');
            var tab = $(this).attr('TabName');
            $("ul").append("<li><a href="+ id +">"+ tab +"</li>");
        });
    }
});

阅读 306

收藏
2020-07-26

共1个答案

小编典典

Firefox之所以允许该请求,是因为它也接受来自本地文件系统(即file://协议)的请求。但是Chrome拒绝所有XMLHttpRequests到file://url。

请注意,您无法从任一浏览器中的外部域向本地文件系统发出AJAX请求-如果可以的话,这将是一个 巨大的 安全漏洞。

为了使此AJAX请求能够在Chrome中运行,您需要向网络服务器发出请求。如果您使用的是Windows,则可以轻松地在本地计算机上安装IISWAMP

请注意,可以在Google
Chrome中启用一个设置,该设置允许浏览器向本地文件系统发出请求,但是使用它并不是一个好主意。如果您决定继续进行,请在此处找到指南。

2020-07-26