当XHR的异步参数设置为TRUE时,不返回任何内容

时间:2015-04-17 03:29:47

标签: javascript ajax xmlhttprequest

当我尝试使用简单的代码来测试XMLHttpRequest()函数时,我使用了这段代码:

<script>
//Global variable to store the XMLHttpRequest object

    var myRequest;

    //Package the request into its own function

    function getData()

    {

    //Feature-testing technique to make sure the browser

    //supports the XMLHttpRequest object

    if (window.XMLHttpRequest)

    {

    //create a new instance of the object

    myRequest = new XMLHttpRequest();

    }

    //else - the XMLHttpRequest object is not supported:

    //create an instance of ActiveXObject

    else

    {

    myRequest = new ActiveXObject("Microsoft.XMLHTTP");

    }

    //Use the open(retrievalMethod, "myDataFile.txt", bool) method

    myRequest.open("GET", "test.txt", true);

    //Use send() with a null argument - we have nothing to send:

    myRequest.send(null);

    //attach a function to handle onreadystatechange,

    //that is, the response from the server:

    myRequest.onreadystatechange = getData;
    alert(myRequest.responseText);
    }
</script>

我想简单地返回“test.txt”文件的内容。

现在, 当我运行此代码时,我什么都没得到!我只看到一个空白的屏幕......

现在, 当我将Asnyc参数设置为false时,它可以工作!

为什么?

1 个答案:

答案 0 :(得分:-1)

指向本地文件的XMLHttpRequests不是开箱即用的(xmlhttprequest for local files)。

你的getData() - 方法应该包含这样的东西:

funtion getData (requestObject) {
    if (request.readyState === 4) {
         //DO STUFF
    }
}

执行请求同步时它的工作原因是因为您可能没有包含上述代码。