Javascript 使用vanilla JS AJAX请求访问本地JSON文件时出现CORS错误?

Javascript 使用vanilla JS AJAX请求访问本地JSON文件时出现CORS错误?,javascript,ajax,json,Javascript,Ajax,Json,我尝试使用一个普通的JS AJAX请求从本地存储的JSON文件中提取JSON字符串(特别是尝试不使用JQuery)——下面的代码是基于此编写的——但我在Chrome控制台中不断收到一个错误(见下文)。知道我哪里出错了吗?我已尝试更改xhr.open和.send请求的位置,但仍然收到错误消息。我怀疑问题在于.send()请求 Chrome中的控制台引发以下错误: “无法加载XMLHttpRequestfile:///C:/Users/brett/Desktop/SightingsDB/js/spe

我尝试使用一个普通的JS AJAX请求从本地存储的JSON文件中提取JSON字符串(特别是尝试不使用JQuery)——下面的代码是基于此编写的——但我在Chrome控制台中不断收到一个错误(见下文)。知道我哪里出错了吗?我已尝试更改xhr.open和.send请求的位置,但仍然收到错误消息。我怀疑问题在于.send()请求

Chrome中的控制台引发以下错误:

“无法加载XMLHttpRequestfile:///C:/Users/brett/Desktop/SightingsDB/js/species.json. 跨源请求仅支持协议方案:http、数据、chrome、chrome扩展、https、chrome扩展资源。“


非常感谢您提供的任何见解。

尝试在本地服务器(如apache或wamp)上运行应用程序,这样您就不会遇到任何问题

基本上就像下面Felix、error msg等所说的那样-根本无法对本地文件运行AJAX请求


谢谢。

这是一个关于安全性的问题,请尝试在本地主机服务器或Live中运行它。错误消息有什么不清楚的地方?它清楚地表明,
文件
协议不支持CORS。现代浏览器将每个
文件://
URL视为一个不同的域。显然,您直接从文件系统运行脚本,而不是从HTTP服务器运行脚本。(正如@Özgür Ersil所建议的)您不能向本地文件系统发出Ajax请求。
//Vanilla JS AJAX request to get species from JSON file & populate Select box
function getJSON(path,callback) {

    var xhr = new XMLHttpRequest();                                         //Instantiate new request

    xhr.open('GET', path ,true);                                            //prepare asynch GET request
    xhr.send();                                                             //send request

    xhr.onreadystatechange = function(){                                    //everytime ready state changes (0-4), check it
        if (xhr.readyState === 4) {                                         //if request finished & response ready (4)
            if (xhr.status === 0 || xhr.status === 200) {                   //then if status OK (local file || server)
                var data = JSON.parse(xhr.responseText);                    //parse the returned JSON string
                if (callback) {callback(data);}                             //if specified, run callback on data returned
            }
        }
    };
}
//-----------------------------------------------------------------------------

//Test execute above function with callback
getJSON('js/species.json', function(data){
    console.log(data);
});