【问题标题】:No response from XMLHttpRequestXMLHttpRequest 没有响应
【发布时间】:2011-05-27 21:55:38
【问题描述】:

我正在开发一个 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 提取数据,但是当我尝试这样做时,警报上没有显示任何内容。

【问题讨论】:

    标签: xml ajax http xmlhttprequest


    【解决方案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 替换为回调函数。

    【讨论】:

    • 你也可以用“&&”代替“||”
    猜你喜欢
    • 1970-01-01
    • 2018-11-19
    • 1970-01-01
    • 2012-06-04
    • 2012-01-17
    • 1970-01-01
    • 2012-04-18
    • 2020-08-29
    • 1970-01-01
    相关资源
    最近更新 更多