Firefox扩展程序上的AJAX错误(从Chrome移植)

时间:2012-02-01 02:33:56

标签: jquery ajax firefox-addon

我尝试使用此工具http://www.extensionfactory.com/labs/conversion/将Chrome扩展程序转换为Firefox,除了AJAX调用外,它的效果很好。每次我从Firefox扩展程序进行AJAX调用时,都会收到此错误(在Chrome中运行正常):

  

[Exception ...“组件返回失败代码: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   :: ::第97行“数据:否]

这是content_script(chrome扩展名)中的AJAX调用:

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');
            }
        });

    }
});

我跟踪了错误,没有找到任何内容,没有任何相关内容,我无法从Firebug获取更多详细信息。我还验证了网站地址和服务器代码,一切都很好,它只适用于Firefox。

我认为Firefox Extension API对AJAX请求有一些限制,但我不知道该说什么,因为我在互联网上找不到任何东西。

也许你知道这里发生了什么......

1 个答案:

答案 0 :(得分:0)

有多种方法可以制作Firefox扩展程序,因此很难给出详细的答案,但我会说,如果您尝试从扩展程序沙箱环境中进行网络调用,则会收到您收到的错误消息,因为他们不允许这样做。

如果可以,请使用可在此处找到的最新SDK: https://addons.mozilla.org/en-US/developers/docs/sdk/latest/

你会注意到他们的api中有一个名为“request”的类,它正是你想要的。在这里能找到它: https://addons.mozilla.org/en-US/developers/docs/sdk/1.4/packages/addon-kit/docs/request.html

有一点需要注意,如果您使用最新的SDK(撰写本文时为1.4),则与4之前的Firefox版本不兼容。