2016-09-18 46 views
0

我在运行我的Ubuntu Apache本地主机上的标准GOOGLE json文件加载示例时出现问题。我看到一个与IIS有关的问题(How to open a local file with Javascript FileReader())。不过,我正在寻找Ubuntu上的Apache解决方案。本地主机无法在Apache中加载geoJson数据到Ubuntu中

json文件从远程URL(请参阅下面的代码)正确加载,但无法从我的本地URL加载,即使我可以通过我的浏览器查看它。我尝试过绝对和相对的路径。

Data Layer: Simple html, body { height: 100%; margin: 0; padding: 0; } #map { height: 100%; }

function initMap() { 
    map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 4, 
    center: {lat: -28, lng: 137} 
    }); 
    // This doesn't work even though it works in my FireFox browser 
    map.data.loadGeoJson('localhost/google.json'); 
    //This one works 
    //map.data.loadGeoJson('https://storage.googleapis.com/mapsdevsite/json/google.json'); 
} 

谢谢。

+0

此外,有没有任何js控制台错误指示任何安全策略被违反? –

+0

我是新来的JavaScript和Linux - 所以刚刚安装Firebug。 当我使用http://myserver.local运行时,出现此错误: “跨源请求被阻止:同源策略不允许读取http://myserver.local/google.json处的远程资源。 (原因:缺少CORS头'Access-Control-Allow-Origin')。“ 当我使用local/google.json运行时,出现此错误:“NS_ERROR_DOM_BAD_URI:访问受限制的URI被拒绝” –

+0

更正:当我使用localhost/google.json运行时出现错误: “NS_ERROR_DOM_BAD_URI:否认“ –

回答

0

您是否尝试过以下方法?

以下内容添加到/ etc/hosts文件:

127.0.0.1  myserver  myserver.local 

及用途:中 http://myserver.local代替http://localhost

这使得浏览器认为它连接到远程服务器。

+0

感谢您的建议。我已经尝试过,但它仍然不起作用。现在我可以从 http://myserver.local/google.json查看该文件,但它仍然不会从.html文件运行。 –

0

我还没有完全解决这个我想要的方式 - 但我已经能够通过将TestGeoJSON.html文件(如上所示)放入var/www/html中,然后通过加载Json文件直接使用:

map.data.loadGeoJson('file:///var/www/html/google.json');