我试图使用此工具http://www.extensionfactory.com/labs/conversion/将Chrome扩展转换为Firefox,除了AJAX调用外,它工作得很好。每次我让来自Firefox扩展AJAX调用,我得到这个错误(在Chrome中正常工作):Firefox扩展上的AJAX错误(从Chrome移植)
[异常...“组件返回故障代码:0x80004005的 (NS_ERROR_FAILURE)nsIXMLHttpRequest.send] “nsresult: ”0x80004005的 (NS_ERROR_FAILURE)“ 位置:” JS帧:: 资源://nfglncbjnghpllgmelioileejdnldcgm-api-utils-lib/securable-module.js - >资源:// nfglncbjnghpllgmelioileejdnldcgm-API-utils的-LIB/content/content-proxy.js :: :: line 97“data:no]
这是AJAX调用i n个content_script(Chrome扩展):
var dataString='original_url='+imgsrc+'&filename='+filename+'&crop_x='+selX+'&crop_y='+selY+'&crop_h='+selH+'&crop_w='+selW;
$.ajax({
type: "GET",
url: "http://www.[website.com]/crop",
data: dataString,
async:false,
success: function() {
alert('Image successfully added!');
iframe.src = iframe.src;
} ,
error:function(){
$.ajax({
type: "GET",
url: "http://[www.website.com]/loggedin",
success: function() {
alert('An error occured when uploading image to server! Please try again.');
} ,
error:function(){
alert('You are not logged in! Please login.');
window.open('http://[www.website.com]/login');
}
});
}
});
我追查错误并没有被发现,没有什么相关的,我不能从萤火虫获取更多详情。我也验证了网站地址和服务器代码,一切都很好,但它不适用于Firefox。
我在想Firefox扩展API对AJAX请求有一些限制,但我不知道该说什么,因为我在Internet上找不到任何东西。
也许你知道这里发生了什么......
的Firefox版本兼容你为什么用GET请求发送数据?虽然Firefox允许,但大多数服务器不会。 – 2012-02-01 07:32:13
顺便说一句,重要的是要提到这是一个内容脚本 - 背景页面的转换是不同的,XMLHttpRequest应该在那里工作。 – 2012-02-01 07:43:23
AJAX请求工作正常,我得到500错误,因为它没有发送服务器上所需的cookie数据,因为我正在使用会话。解决方案是让它发送像Chrome一样的cookie数据。 – 2012-02-01 08:16:51