在Chrome中,Access-Control-Allow-Origin不允许为null.加载JSON

Origin null is not allowed by Access-Control-Allow-Origin in Chrome. Loading JSON

本文关键字:null 加载 JSON 不允许 Access-Control-Allow-Origin Chrome      更新时间:2023-09-26

我写了一个脚本,从json文件中获取数据。它在Firefox中工作正确,但在Chrome中是错误的:

选项文件:///home/[…]/tilemaps/testmap。Access-Control-Allow-Origin不允许为null。jquery.js: 6XMLHttpRequest无法加载文件:///home/[…]/tilemaps/testmap.json。Access-Control-Allow-Origin不允许为null。

这是代码:

function newTileMapFromJSON(src) {
    var mymap;
    $.getJSON(src, function(data) {
        mymap = data;
        //console.log(mymap);
        console.log("Mapa 0, 0 : " + mymap.layers[0].data[0]);
        var wOfArray = mymap.layers[0].width;
        var hOfArray = mymap.layers[0].height;
        var mapArr = [];
        var imAt = 2;
        for (var x = 0; x < wOfArray; x++) {
            for (var y = 0; y < hOfArray; y++) {
                console.log("imAt" + imAt + " x: " + x);
                mapArr[x][y] = mymap.layers[0].data[imAt];
                imAt++;
            }
        }
        console.log("mapArr: " + mapArr);
    });
}
newTileMapFromJSON("tilemaps/testmap.json");

为什么不工作?为什么它可以在Firefox上运行,但不能在Chrome上运行。PS:在Firefox中,for循环只工作一次。但是它应该可以运行25x25次:/

file:///被认为本质上是危险的。如果你想chrome允许XHR检索时从文件运行,而不是从本地主机服务器(python -m SimpleHTTPServer等),那么你将不得不启动chrome与标志--allow-file-access-from-files