FF扩展 - 获取xmlhttp.status == 0

时间:2011-08-20 10:04:44

标签: firefox-addon firefox-addon-sdk xmlhttprequest

我正在为Firefox编写扩展程序,并使用page-mod模块运行包含以下内容的JavaScript文件:

function handleServerResponse() {

   if (xmlHttp.readyState == 4) {
     if(xmlHttp.status == 200) {
        //some code
     }
     else {
        alert("Error during AJAX call. Please try again");
     }
   }
}

var xmlHttp = new XMLHttpRequest();
var txtname = document.getElementById("txtname");
xmlHttp.open("POST","http://localhost:8080/Jelly/GetStuff",true);
xmlHttp.onreadystatechange  = handleServerResponse;
xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlHttp.send("url=" + document.URL);

我不断获得xmlhttp.status==0而不是200,即使代替localhost我使用的是IP地址。 有什么想法吗?

1 个答案:

答案 0 :(得分:2)

内容脚本代码无法执行跨域请求 - 请尝试使用“请求”模块:

https://addons.mozilla.org/en-US/developers/docs/sdk/1.1/packages/addon-kit/docs/request.html

您可以在附加组件的main.js脚本中实现请求,而不是在单独的脚本中编写代码并使用page-mod将其注入页面。