本地.txt文件上的XMLHttpRequest()在除Firefox之外的所有浏览器中返回一个空的responseText

时间:2012-07-06 17:43:45

标签: javascript xmlhttprequest responsetext

由于某些原因,当尝试从同一子目录中包含的文件中提取时, 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);
}

1 个答案:

答案 0 :(得分:1)

这是设计用于防止javascript漏洞利用共享,例如邮件文件中的附件(因为桌面应用程序中不存在某些行,而且只有一个文件系统)。对于开发,您可以使用--disable-web-security标记在Chrome中禁用此安全功能,但通常您只需接受这是不可能的。