XMLHttpRequest.responseText не записывает значение при вызове URL - PullRequest
2 голосов
/ 04 июня 2011

В моем коде может быть небольшая ошибка. пожалуйста, посоветуйте мне.

Я хочу вызвать URL и отобразить значение в div на pageload.Я написал этот код из SO, но responseText не записывает значение в innerhtml элемента div

Код

<script type="text/javascript" >    
 var req ;
// Browser compatibility check          
if (window.XMLHttpRequest) {
   req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {

 try {
   req = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {

   try {
     req = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (e) {}
 }

}


var req = new XMLHttpRequest();
req.open("GET", "www.example.com/Default.aspx?usrname=john",true);
req.onreadystatechange = function () {
    document.getElementById('divTxt').innerHTML = "My Status: " + req.responseText;
}

req.send(null);
</script>
 <html>
 <head/>
 <body>
 <div id="divTxt"></div></body>
 </html>

Я получаю вывод
Мой статус:

PS: я хочу, чтобы это было сделано после загрузки страницы, а URL-адрес возвращает значение "онлайн" при вызове вручную

EDIT Это код, который я упоминал: код

Ответы [ 2 ]

0 голосов
/ 07 июня 2011

Вы не можете ajax URL-адрес из другого домена, если он не реализован CORS

Если вам нужно получить данные откуда-то, что не того же происхождения вам нужноиспользуйте JSONP

Также для отладки попробуйте вызвать URL из адресной строки, чтобы увидеть, получаете ли вы действительные данные для вашего запроса

0 голосов
/ 04 июня 2011

req.onreadystatechange = function () { document.getElementById ('divTxt'). innerHTML = "Мой статус:" + req.responseText; }

Вы должны проверить, был ли запрос успешным:

if (req.readyState === 4) { // что нужно сделать с результатом }

наконец, это должно выглядеть так:

req.onreadystatechange = function () {
if (req.readyState === 4) {
document.getElementById ('divTxt'). innerHTML = "Мой статус:" + req.responseText;
}
}

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