javascript xmlhttprequest не будет работать - PullRequest
0 голосов
/ 10 ноября 2010

Я изучаю JavaScript для нового проекта. Я видел много уроков по javascript и xmlhttprequest, но когда я пытаюсь запустить декодирование, это не сработает. кто-нибудь может мне помочь.

вот мой HTML + код JavaScript: </p> <pre><code><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>xml reader</title> </head> <body> <script type="text/javascript"> var xmlhttp; var xmldoc; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); }else {// code for IE6, IE5 xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); } xmlhttp.onreadystatechange=stateChange(); xmlhttp.open("GET","info.xml",true); xmlhttp.send(null); xmldoc = xmlhttp.responceXML.documentElement; document.write(xmlhttp.getElementsByTagName("vakken")[0].childNodes[0].nodeValue); </script> </body> </html>

вот мой xml-файл:

</p> <pre><code><?xml version="1.0" encoding="utf-8"?> <info> <name>test</name> <nummber>10</nummber> </info>

Ответы [ 4 ]

1 голос
/ 10 ноября 2010

Вы не получили ответ в Запросе или это может быть так, что вы получили ответ, но он не записан в вашей семье? В последнее время у меня была проблема, что document.write не будет работать на одной из моих страниц. Я обнаружил, что document.write не допускается на страницах на основе XHTML (моя страница была XHTML 1.1, ваша - XHTML 1.0). Так что это всего лишь предположение. Вы можете проверить это с помощью firebug-extension для firefox. Хотя все распространенные браузеры уважают, что document.write не разрешено и выдают сообщение об ошибке, IE, тем не менее, поддерживает document.write в любом случае ...

1 голос
/ 10 ноября 2010

возможно, вам следует использовать xmlhttp.onreadystatechange и установить его в реальную функцию.функция stateChange () не существует в приведенном выше примере.

хороший рабочий пример, который делает почти то же самое, что и вы, здесь: http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_first

1 голос
/ 10 ноября 2010

stateChange(), который вы вызываете onreadystatechange, не определено - добавьте функцию с именем stateChange, которая будет вызываться после возврата ответа.

Пример такой функции:

function stateChange() {
    if(xmlhttp.readyState == 4){
        xmldoc = xmlhttp.responseXML.documentElement;
        document.write(xmlhttp.getElementsByTagName("vakken")[0].childNodes[0].nodeValue);
    }
}

Вы должны помнить, что AJAX является асинхронным - ответ должен обрабатываться отдельно во время его возврата - следовательно, использование события readystatechanged ...
Удалите две строки после отправки запроса из исходного кода (онив функции stateChange).

1 голос
/ 10 ноября 2010

В вашем JavaScript есть ошибка ReferenceError, которая препятствует его полному выполнению. "stateChange" не определено. Вам нужно определить функцию stateChange.

Также похоже, что «ответ» написан неправильно (ответ).

Пожалуйста, пройдите этот урок от W3Schools: http://www.w3schools.com/XML/xml_http.asp

Вы очень близки, поэтому используйте W3Schools в качестве ресурса, чтобы исправить некоторые другие проблемы в вашем коде.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...