Nic*_*ick 6 javascript ajax xmlhttprequest firefox-addon
我正在努力从Firefox扩展程序发出AJAX请求.我有这个代码:
function GetMenu(){
   var oReq = Components.classes["@mozilla.org/xmlextras/xmlhttprequest;1"].createInstance();
   // Setup event handlers - must be set before calling open()
   oReq.addEventListener("progress", updateProgress, false);
   oReq.addEventListener("load", transferComplete, false);
   oReq.addEventListener("error", transferFailed, false);
   oReq.addEventListener("abort", transferCanceled, false);
   oReq.open('POST', "http://www.foo.bar/", true);
   oReq.send('your=data&and=more&stuff=here');
}
function transferFailed(evt) {
  Application.console.log("An error occurred while transferring the file.");
  Application.console.log(this.responseText);
  for(var i in evt)     
     Application.console.log(i+ ' => '+evt[i]);
}
Run Code Online (Sandbox Code Playgroud)
请求失败,因为http://www.foo.bar/不存在(我假设).我的问题是,为什么传递给transferFailed()的evt对象中没有错误消息,说"域不存在"或"DNS失败"或者那种性质的东西?事件对象的属性都没有任何关于问题是什么,没有消息,没有错误代码等的指示.
不应该有某种实际错误的指示吗?
由于您正在使用 chrome-privileges 运行:
function transferFailed(evt) {
 if (this.channel && this.channel.status == Components.results.NS_ERROR_UNKNOWN_HOST) {
   alert("DNS error");
 }
}
Run Code Online (Sandbox Code Playgroud)
(@paa 在评论中所说的)。
请参阅(您可能需要QueryInterface/instanceof相应地):
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1142 次  |  
        
|   最近记录:  |