Javascript XMLHttpRequest、FireFox扩展和错误代码';1012';(访问被拒绝)

Javascript XMLHttpRequest、FireFox扩展和错误代码';1012';(访问被拒绝),javascript,firefox,xmlhttprequest,Javascript,Firefox,Xmlhttprequest,我正在开发一个FireFox扩展,它使用XMLHttpRequest从远程服务器获取数据 javascript代码如下所示: function _PostBackObject(data) { var postBack = new XMLHttpRequest(); postBack.onreadystatechange = function(){ if (postBack.readyState == 4) {

我正在开发一个FireFox扩展,它使用XMLHttpRequest从远程服务器获取数据

javascript代码如下所示:

function _PostBackObject(data) {
    var postBack = new XMLHttpRequest();
    postBack.onreadystatechange =
        function(){
            if (postBack.readyState == 4) {
                if (postBack.status == 200) {
                    // Success
                    return;
                }

                _ErrorOccured(postBack.status);
            }
        };

    postBack.open("POST", postBackUrl, true, user, password);  //This is line #51
    postBack.send(data);
}
我在FireFox控制台中遇到以下错误:

错误:未捕获异常: [例外情况…”访问受限 URI拒绝“代码:“1012”nsresult: “0x805303f4(NS\U错误\U DOM\U错误\U URI)” 地点: "chrome://my_ext/content/context.js 第51行“]

postBackUrl可以是用户输入的任何内容(出于测试目的,我一直在使用本地机器[127.0.0.1]和位于本地网络[so 192.168.*.]上的服务器[so 192.168.*.],两者都位于端口8088上)

看起来我被XSS安全措施绊倒了。我该如何解决这个问题

其他一些细节:

  • FireFox 3.5.3(可以将其限制在和更新版本中)
  • 未签名的扩展名(我会自行签名,但这相当麻烦,据我所知,对您没有任何好处)
  • 我完全可以控制远程服务器(这是一个自定义设置,不是Apache或IIS,是用C#for.NET 3.5编写的)

首先,如果您是从chrome调用此代码,您的代码不应进行任何跨站点检查。默认情况下,允许Chrome代码进行跨站点XHR。你是直接从chrome中调用它,还是以某种方式将其注入到内容中?

其次,XHR代码中只有三个地方返回特定的错误代码:

它们都与预飞行请求有关:


您的服务器是否收到了其中的一个,并且处理不当了?

首先,如果您是从chrome调用此代码,您的代码不应该进行任何跨站点检查。默认情况下,允许Chrome代码进行跨站点XHR。你是直接从chrome中调用它,还是以某种方式将其注入到内容中?

其次,XHR代码中只有三个地方返回特定的错误代码:

它们都与预飞行请求有关:


您的服务器是否得到了其中一个,并且处理不当?

这将是标记的//这是第51行#这将是标记的//这是第51行#我忽略了
访问控制请求方法
头。我忽略了
访问控制请求方法
头。