我正在努力使用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>"); }); } });
Firefox之所以允许该请求,是因为它也接受来自本地文件系统(即file://协议)的请求。但是Chrome拒绝所有XMLHttpRequests到file://url。
file://
请注意,您无法从任一浏览器中的外部域向本地文件系统发出AJAX请求-如果可以的话,这将是一个 巨大的 安全漏洞。
为了使此AJAX请求能够在Chrome中运行,您需要向网络服务器发出请求。如果您使用的是Windows,则可以轻松地在本地计算机上安装IIS或WAMP。
请注意,可以在Google Chrome中启用一个设置,该设置允许浏览器向本地文件系统发出请求,但是使用它并不是一个好主意。如果您决定继续进行,请在此处找到指南。