使用ajax访问data.json文件调用接收错误
仅支持协议方案的交叉原始请求:http,数据,chrome,chrome-extension,https。
我使用的是本地json文件,而不是服务器数据。
我试过start chrome --allow-file-access-from-files
工作正常,但每次我需要运行这些命令
当代码在chrome / jquery中运行时,如何为allow-file-access-from-files
为特定文件添加元标记
Ajax电话:
$.ajax({
url: 'data.json',
dataType: 'JSONP',
jsonpCallback: 'callbackFnc',
type: 'GET',
async: false,
crossDomain: true,
success: function (data) {
engines = data;
myDOM();
},
failure: function () { },
complete: function (data) {
if (data.readyState == '4' && data.status == '200') {
console.log(" Status: 'SUCCESS' ");
}
else {
console.log(" Status: 'FAIL' ");
}
}
});
data.json:
[
{
"Function": "CAB",
"Part_No": "RE284091",
"Description": "Cab Air Filter",
"Hours": "1000",
"Model": "7200R",
"Serial_NO":"xxxx"
},
{
"Function": "CAB",
"Part_No": "RE291412",
"Description": "RECIRCULATION AIR FILTER",
"Hours": "1000",
"Model": "7200R",
"Serial_NO":"xxxx"
}
答案 0 :(得分:0)
$.ajax({
url: 'http://data.json',
dataType: 'JSON',
type: 'GET',
async: false,
crossDomain: true,
success: function () { },
failure: function () { },
});
如果它不起作用,请尝试使用JSONP,因为它会绕过相同的原始策略
$.ajax({
url: 'pathtofile',
dataType: 'JSONP',
jsonpCallback: 'callbackFnc',
type: 'GET',
async: false,
crossDomain: true,
success: function () { },
failure: function () { },
complete: function (data) {
if (data.readyState == '4' && data.status == '200') {
errorLog.push({ IP: Host, Status: 'SUCCESS' })
}
else {
errorLog.push({ IP: Host, Status: 'FAIL' })
}
}
});
答案 1 :(得分:0)
您应该尝试通过网络服务器运行它。出于安全考虑,浏览器本身将无法访问文件。您也不应尝试通过设置一些特定于浏览器的标志来绕过它。
我遇到了类似的问题,并在网络服务器中运行它为我修复了该问题。