0

由于某种原因,我的XMLHttpRequest().responseText在尝试从同一子目录中包含的文件中提取时为空。

我没有检查XMLHttpRequest().status == 200,因为根据我在搜索过程中发现的情况,如果请求的文件是本地文件,状态将始终为 0 - 这是我在几分钟前遇到的问题检查XMLHttpRequest().readyState == 4 && XMLHttpRequest().status == 200。这是由于没有通过网络服务器。

文件(data.txt)包含纯文本,但responseText总是返回空,我不知道为什么。任何帮助将不胜感激!

更新: 似乎它适用于 Firefox,但不适用于 Chrome(我用来测试)或 IE。这些浏览器没有将数据放入 responseText,所以有谁知道为什么,或者更好的是,如何纠正它?

function loadData()
{
    var request = new XMLHttpRequest();
    request.open("GET", "data.txt", true);
    request.onreadystatechange = function()
    {
        if (request.readyState == 4)
            useData(request.responseText);
    }
    request.send(null);
}
4

1 回答 1

1

这是为了防止 javascript 漏洞共享,例如邮件文件中的附件(因为桌面应用程序不存在类似域的东西,并且只有一个文件系统)。对于开发,您可以使用该--disable-web-security标志在 chrome 中禁用此安全功能,但通常您只需要接受这是不可能的。

于 2012-07-06T18:11:09.170 回答