Когда я пытался простой код, чтобы проверить XMLHttpRequest()
функцию, я использовал этот код:Ничто не возвращается, когда asnyc параметр XHR установлен в значение TRUE
<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, он работает!
Почему?
FYI, вы должны использовать 'window.onload = getData;'. Вы хотите передать ссылку на функцию, а не результат возврата от выполнения функции немедленно. – jfriend00
Это не имеет никакого смысла. 'getData()' запускает вызов ajax, а затем подключается 'onreadystatechange' к getData, который запустит другой вызов ajax и т. д. Это будет продолжаться вечно, если что-то не вызовет ошибку. – jfriend00
Вам нужно будет показать нам код, который фактически использует результат вызова ajax, потому что это, вероятно, ошибка вашего кодирования, но вы оставили это из своего вопроса. – jfriend00