JQuery跨域JSONP在FF5扩展/插件中,回调未定义

时间:2011-07-26 07:57:58

标签: jquery firefox-addon cross-domain jsonp

您好我正在尝试为Firefox5创建扩展,其中扩展代码在页面加载开始时注入两个脚本。

var data = require("self").data;
var pageMod = require("page-mod");
pageMod.PageMod({
        include: ['*'],
            contentScriptWhen: "start",
            contentScriptFile:
        [data.url("jquery.min.js"), data.url("js_include.js")],
            });

脚本js_include.js正在使用全局回调函数'onJSONPLoad'进行跨域JQuery jsonp调用,其代码如下:

window.onJSONPLoad = function(data) {
      //do something here...
}

jQuery(function(){
        jQuery.ajax({
                url: 'http://localhost:8000/getvos/',
                    type: 'GET',
                    data: 'url='+window.location.href,
                    dataType: 'jsonp',
                    jsonp: 'jsonpCallback',
                    jsonpCallback: 'onJSONPLoad'
            });

    });

如果我在页面中执行此操作,则此功能可用,但在我尝试在加载项中执行时则不行。 Firebug显示调用已经完成,响应得到了,我也可以在控制台中看到响应。但是,onJSONPLoad函数永远不会执行,我得到的只是“onJSONPLoad未定义”。

我在SO上看过其他问题/答案,但是他们要求onJSONPLoad是全球性的,我已经做过了,但它仍然不起作用。

任何帮助?

1 个答案:

答案 0 :(得分:0)

试试这个:jsonpCallback: 'window.onJSONPLoad'