2017-01-14 2 views
-1

Мой код, похоже, не работает, то есть связь с сервером. Может кто-нибудь, пожалуйста, скажите мне, какую ошибку я сделал? Я что-то наблюдал?Что не так с этим кодом? (AJAX)

P.S - новый для AJAX.

<!DOCTYPE html> 
<html> 
<head> 
<script> 
function loadXMLDoc(){ 
var xmlhttp; 

if (window.XMLHttpRequest) { 
    xmlhttp=new XMLHttpRequest(); 
} 

else { 
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
} 

xmlhttp.onreadystatechange=function(){ 

if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
document.getElementById("mySection").innerHTML=xmlhttp.responseText; 
} 
} 

xmlhttp.open("GET","ajax_info.txt",true); 

xmlhttp.send(); 

} 
</script> 
</head> 

<body> 
<section id="mySection"> 
<h2>Let AJAX change this text</h2> 
</section> 
<button onclick="loadXMLDoc()" type="button">Change Content</button> 

</body> 
</html> 
+2

Сделайте некоторые основные отладки. Откройте инструменты разработчика в своем браузере. Посмотрите на консоль. Что он говорит? Посмотрите вкладку «Сеть». Вы видите запрос? Вы видите ответ? Это то, чего вы ожидаете? Добавьте инструкции console.log. Вызывается ли 'onreadystatechange'? Какие значения для readyState и status получат? – Quentin

+0

Кажется, что это нормально. является ** ajax_info.txt ** в том же каталоге? Вы уверены, что его загрузили? Имейте в виду, если вы запустите это локально, вы можете получить эту ошибку в консоли. XMLHttpRequest не может загрузить файл: /// C: /Users/*******/Desktop/ajax_info.txt. Запросы на кросс-начало поддерживаются только для схем протокола: http, data, chrome, chrome-extension, https, chrome-extension-resource. ' – NewToJS

ответ

-2

Ваш код в порядке. Просто проверьте URL-адрес, который вы передаете как второй аргумент в xmlhttp.open («GET», «ajax_info.txt», true);. Скорее всего, имя файла, которое вы передаете, неверно.

Чтобы проверить, если ваш код работает нормально или не просто заменить ajax_info.txt URL с https://api.github.com/users/octocat или любой другой общедоступной апи URL-адрес или имя любого локально сохраненного файла (только убедитесь, что передать правильное имя в следующий раз).

«Связь с сервером»: В принципе, здесь вы передаете имя локального файла, поэтому он не связывается с сервером. Чтобы заставить его обмениваться данными с сервером, передайте фактический URL-адрес, как и выше, по адресу Github.