没有来自XMLHttpRequest的响应

时间:2010-12-19 17:15:55

标签: xml ajax http xmlhttprequest

我正在开发一个Firefox扩展程序,我一直试图从我需要从中获取数据的几个站点获取响应文本。不知道为什么我这里没有得到任何数据。

以下是测试Quantcast.com的XHR请求的代码:

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);                                
}

这里缺少什么东西吗?我知道通过XHR通过Quantcast提取数据的其他扩展,但是当我尝试这样做时,没有任何内容出现在警报上。

1 个答案:

答案 0 :(得分:1)

首先,我打电话时会反其道而行之。

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

然后我也会改变你得到答案的方式,因为你想要readyState和status,而不是你想要的。

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

你可以尝试事件并捕获(e)在服务器错误上发送消息。 你也可以用回调函数替换xhrdata。