繁体   English   中英

XMLHttpRequest responseText打开本地txt文件时为空

[英]XMLHttpRequest responseText empty when opening a local txt file

这是“使用js的DOM脚本进行Web设计文档对象模型”示例的一个示例:ajax.html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8" />
        <title>Ajax</title>
</head>
<body>
    <div id="new"></div>
    <script src="scripts\addLoadEvent.js"></script>
    <script src="scripts\getHTTPObject.js"></script>
    <script src="scripts\getNewContent.js"></script>
</body>
</html>

addLoadEvent.js

function addLoadEvent(func)
{
    var oldonload = window.onload;
    if(typeof window.onload != 'function')
    {
        window.onload = func;
    }
    else{
        window.onload = function(){
            oldonload();
            func();
        }
    }
}

getHttpObject,JS

function getHTTPObject()
{
    if(typeof XMLHttpRequest == 'undefined')
        XMLHttpRequest = function(){
            try{return new ActiveXObject('Msxml2.XMLHTTP.6.0');}
                catch (e) {}
            try{return new ActiveXObject('Msxml2.XMLHTTP.3.0');}
                catch (e) {}
            try{return new ActiveXObject('Msxml2.XMLHTTP');}
                catch (e) {}
            return false;
        }
        return new XMLHttpRequest();
}

getNewContent.js

function getNewContent()
{
    var request = getHTTPObject();
    if(request){
        request.open("GET","example.txt",true);
        request.onreadystatechange = function(){
            if(request.readyState == 4){
                if(request.status == 0){
                    var para = document.createElement("p");
                    var txt = document.createTextNode(request.responseText);
                    para.appendChild(txt);
                    document.getElementById('new').appendChild(para);
                }
            }
        };
        request.send(null);
    }else{
        alert('sorry,your browser doesn\'t support XMLHTTPRequest');
    }
}

addLoadEvent(getNewContent);

example.txtajax.html在同一目录中,而request.status=0responseText始终为空。我的代码有什么问题?

我在使用chrome或IE时遇到了同样的问题。 但是,当我切换到Firefox时,一切都非常好! 有人说这是因为Ajax基于HTTP协议。 IE或chrome在HTTP和FILE协议之间会有错误。 Firefox可以兼容(细节对我来说太复杂了),所以我只建议使用Firefox〜也请检查脚本中是否没有拼写错误。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM