Javascript XMLHttpRequest、FireFox扩展和错误代码';1012';(访问被拒绝)
我正在开发一个FireFox扩展,它使用XMLHttpRequest从远程服务器获取数据 javascript代码如下所示: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) {
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代码中只有三个地方返回特定的错误代码: 它们都与预飞行请求有关:
您的服务器是否得到了其中一个,并且处理不当?这将是标记的//这是第51行#这将是标记的//这是第51行#我忽略了
访问控制请求方法
头。我忽略了访问控制请求方法
头。