2016-08-01 3 views
1

Я знаю, что я могу просто пропустить простую вещь, которая прямо у меня под носом, или вообще не могу понять ajax ... но у меня есть проблема - этот простой мир кода не работает, но это из w3schools, и это самый простой пример работы ajax. Может кто-нибудь мне помочь, пожалуйста?ajax простой код не работает

<!DOCTYPE html> 
 
<html> 
 
<body> 
 

 
<div id="demo"><h2>Let AJAX change this text</h2></div> 
 

 
<button type="button" onclick="loadDoc()">Change Content</button> 
 

 
<script> 
 
function loadDoc() { 
 
    var xhttp = new XMLHttpRequest(); 
 
    xhttp.onreadystatechange = function() { 
 
    if (xhttp.readyState == 4 && xhttp.status == 200) { 
 
     document.getElementById("demo").innerHTML = xhttp.responseText; 
 
    } 
 
    }; 
 
    xhttp.open("GET", "ajax_info.txt", true); 
 
    xhttp.send(); 
 
} 
 
</script> 
 

 
</body> 
 
</html>

Вот "ajax_info.txt" Файл:

text changed.

+0

Является ли '' ajax_info.txt '' локальным файлом? В каком браузере вы пытаетесь «js»? – guest271314

+0

«ajax_info.txt» - это файл, расположенный в той же папке, что и «index.html», и он просто содержит это: «текст изменен» Я пытаюсь в Chrome –

+0

Вы пытаетесь «js' at Question at 'файл:' протокол? То есть, адрес на странице, где вы запрашиваете файл 'file: /// path/to/folder/index.html'? – guest271314

ответ

0

Если вы открываете файл в браузере с файла: // или C:/ вы получите запрос ошибки перекрестного происхождения при попытке загрузить 'ajax_info.txt », причина этого заключается в том, чтобы защитить личные файлы ваших машин от чтения сценариями браузера. Чтобы исправить это, вам нужно будет использовать протокол http: //, который вы можете сделать, если вы устанавливаете веб-сервер на свой локальный компьютер, такой как WAMP или MAMP.

Кроме того, файл с именем ajax_info.txt должен существовать в том же каталоге, что и этот html-файл. В противном случае этот вызов javascript AJAX вернет ошибку: /ajax_info.txt 404 (не найдено)

+0

Спасибо вам большое! –