此代碼僅在異步設置爲false時起作用,爲什麼?JavaScript異步請求不起作用
var contact =
{
XMLHttp : null,
XMLDoc : null,
TXTDoc : null,
getData : function(dataSource)
{
contact.XMLHttp = new XMLHttpRequest();
contact.XMLHttp.open("GET", dataSource, false);
contact.XMLHttp.onreadystatechange = contact.storeData;
contact.XMLHttp.send(null);
},
storeData : function()
{
if(contact.XMLHttp.readyState == 4 && contact.XMLHttp.status == 200)
{
contact.XMLDoc = contact.XMLHttp.responseXML;
contact.TXTDoc = contact.XMLHttp.responseText;
}
},
displayData : function(elementID)
{
if(contact.TXTDoc != null)
document.getElementById(elementID).innerHTML = contact.TXTDoc;
else{
document.getElementById(elementID).innerHTML = "can't do it";
}
}
}
我將其導入到一個HTML文件,如下所示:
<head> <script type="text/javascript" src="contact.js"></script> </head>
並使用它像這樣:
<body id="para"> <script type="text/javascript"> contact.getData("http://localhost/~olatunjigbadamosi/Books/contact.txt"); contact.storeData(); contact.displayData("para"); </script>
如果我只想在回調函數中將'XMLHttp'的響應分配給'XMLDoc和TXTDoc'而不是顯示它們,我該怎麼辦?我將'storeData'語句插入到'onreadystatechange'的匿名函數中的方法似乎沒有用。 – Fortisimo 2009-10-04 12:17:22
'contact.XMLHttp.onreadystatechange = contact.storeData' 定義調用storeData和displayData,'contact.ajaxCallback'或其他方法的另一個方法。 – 2009-10-05 04:44:15