【发布时间】:2015-06-12 03:57:32
【问题描述】:
我正在尝试制作一组文件,以便能够发送给某人,他们可以在本地网络浏览器中查看一些内容。我的代码在使用网络服务器(apache)查看时有效,但如果我将其作为文件加载(即 file:///C:/Code/Web/test/index.html),则会出现跨域请求错误从我的 JavaScript 文件加载 JSON 文件时。 HTML、JS 和 JSON 文件都在同一个文件夹中。我不确定这是一个跨域请求,以及为什么 chrome 和 IE 无法加载 JSON 文件。 Firefox 加载它没有问题。
我用来加载文件的JS是:
const JSON_FILE = "tin.json";
var xmlhttp;
function webGLStart()
{
fetchDoc(JSON_FILE,loadJSON)
}
function fetchDoc(url,cfunc)
{
if (window.XMLHttpRequest)
{
xmlhttp=new XMLHttpRequest();
}
xmlhttp.onreadystatechange=cfunc;
xmlhttp.open("GET",url,false);
xmlhttp.send();
}
function loadJSON()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200)
{
var input = JSON.parse(xmlhttp.responseText);
displayData(input);
}
}
在我的 html 页面中没有真正发生任何事情。它只是一个画布,主体在加载时调用 webGLStart。
有没有办法解决这个问题,还是 chrome 和 IE 不允许这样做?
【问题讨论】:
-
现代浏览器将每个不同的
file://URL 视为一个单独的主机。 -
谢谢,我担心是这种情况