Json文件不会出现在谷歌浏览器中
我正在开发一个通过jQuery和Leaflet显示Json文件的页面。
Flickr方面运行正常,但是当我尝试$ .getJSON o时,我在Chrome的控制台中看到一个错误:
XMLHttpRequest无法加载file:/// C:/AppServ/www/PFEleaflet/test%20geojson/lot.json。 交叉源请求仅支持协议方案:http,数据,chrome,chrome-extension,https,chrome-extension-resource。
但是当我尝试在FireFox中打开.html页面时,Json文件显示出来,它运行正常。
这是我正在使用的代码:
var geoLayer = L.geoJson().addTo(map); var geoList = L.control.geoJsonList(geoLayer); geoList.on('item-active', function(e) { $('#selection').text(JSON.stringify(e.layer.feature.properties)); }) .addTo(map); $('#geofile').on('change', function(e) { $.getJSON(this.value, function(json) { map.removeLayer(geoLayer); geoLayer = L.geoJson(json).addTo(map); map.fitBounds( geoLayer.getBounds() ); geoList.reload( geoLayer ); }); }).trigger('change');
请帮忙。
建议在本地服务器上打开此页面而不是使用文件协议,这将导致此处和其他地方出现问题。 Nodejs服务很棒,或Ruby内置的http服务器。
这是一个很棒的清单。 https://gist.github.com/willurd/5720255
默认情况下,Chrome不允许任何页面访问file:///
方案,即使页面也在该方案中(在本地计算机上)。 您可以通过向Google Chrome快捷方式添加参数来覆盖此默认设置,如下所示:
转到桌面并制作Google Chrome快捷方式的副本。 右键单击快捷方式,然后单击“ Properties
。 在属性窗口中,将以下内容添加到目标属性(引号之外):
--allow-file-access-from-files
这应该会导致目标属性看起来像这样:
"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --allow-file-access-from-files
现在关闭所有打开的Google Chrome窗口,确保没有正在运行的chrome.exe
进程。 将文件拖到刚刚创建的新快捷方式上,页面应该启动并正常工作。
注意:我不建议更改原始快捷方式或将其设置为默认快捷方式,因为启用此选项后,任何页面都可以访问file:///
方案,而不仅仅是计算机上的页面。