当我尝试使用简单的代码来测试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时,它可以工作!
为什么?
答案 0 :(得分:-1)
指向本地文件的XMLHttpRequests不是开箱即用的(xmlhttprequest for local files)。
你的getData() - 方法应该包含这样的东西:
funtion getData (requestObject) {
if (request.readyState === 4) {
//DO STUFF
}
}
执行请求同步时它的工作原因是因为您可能没有包含上述代码。