Нет ответа от XMLHttpRequest - PullRequest
       12

Нет ответа от XMLHttpRequest

2 голосов
/ 19 декабря 2010

Я работаю над расширением Firefox и пытаюсь получить текст ответа с нескольких сайтов, с которых мне нужно получать данные. Не уверен, почему я не получаю никаких данных здесь.

Вот код для проверки XHR-запроса от Quantcast.com:

function callback(serverData) {       
   alert(serverData);                 
}

function ajaxRequest() {
   var AJAX = null;                           
   if (window.XMLHttpRequest) {               
      AJAX=new XMLHttpRequest();              
   } else {                                   
      AJAX=new ActiveXObject("Microsoft.XMLHTTP"); 
   }                                               
   if (AJAX==null) {                               
      alert("Your browser doesn't support AJAX."); 
      return false                                 
   }
   AJAX.onreadystatechange = function() {                  
      if (AJAX.readyState==4 || AJAX.status==200) { 
         callback(AJAX.responseText);            
      }                                          
   }
   var url='http://www.quantcast.com/facebook.com';
   AJAX.open("GET", url, true);                    
   AJAX.send(null);                                
}

Здесь чего-то не хватает? Я знаю о других расширениях, которые извлекают данные через Quantcast через XHR, но когда я пытаюсь это сделать, в предупреждении ничего не появляется.

1 Ответ

1 голос
/ 27 января 2011

Сначала я сделал бы обратное, когда звоню.

try {
   AJAX = new ActiveXObject("Microsoft.XMLHTTP"); // Try Internet Explorer 
}
catch(e) // Failure then it is something else.
{
  AJAX = new XMLHttpRequest();
}

Тогда я бы также изменил способ, которым вы получаете ответ, потому что вы хотите readyState и статус, а не или, как вы это выразили.

AJAX.onreadystatechange  = function()
{ 
    var xhrdata = "";
     if(AJAX.readyState  == 4)
     {
          if(AJAX.status  == 200) 
             xhrdata = AJAX.responseText; 
          else 
             xhrdata = AJAX.status;
     }
};

Вы можете также попробовать поставить попыткуи catch (e) для отправки сообщения об ошибке сервера.вы также можете заменить xhrdata функцией обратного вызова.

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