JSONP用法 - 范围或异步问题?使用JQuery

时间:2014-07-03 23:07:14

标签: javascript jquery ajax json

我正在使用$ .ajax函数调用JSONP服务:

    $.ajax({
     url: jsonpURI,
     dataType: "jsonp",
     jsonpCallback: callback,
     success: function () {
        console.log("Success");
     }, error: function (err) {
        console.log("Failed to load external deals feed");
     }
    });

目标是只在JSONP中加载一次并存储它以供以后使用。似乎变量没有持有对象。

function callback(data){
 console.log(data);
} // Returns null

我认为这是范围问题或异步问题。有关如何正确使用回调的任何建议,并且可以全局访问JSONP对象吗?

2 个答案:

答案 0 :(得分:2)

jsonpcallback$.ajax parameter,您可以在其中传递将用于JSONP的全局回调函数的名称(如果您不这样做)希望jQuery自己选择一个)。你真的不需要指定它。

您似乎希望将回调用作success回调。要么将其传递给它,要么从自定义成功函数中调用它,要么将其附加到deferred methods

$.ajax({
     url: jsonpURI,
     dataType: "jsonp",
     success: callback, // or:
     success: function(data) {
         console.log("Success");
         callback(data);
     }, error: function (err) {
         console.log("Failed to load external deals feed");
     }
});

答案 1 :(得分:0)

您甚至可以将返回的JSONP对象存储在localstorage变量

window.localStorage(<key>,<value or object>);