JQuery JSONP:一个请求多个回调

时间:2015-01-13 20:14:12

标签: javascript jquery jsonp

我的jsonp网址http://host/dummyJsonp?callback=myFunction的内容是:

myFunction("a");
myFunction("b");
myFunction("c");

但是当我运行这段代码时,只调用一次JQuery成功函数:

$.ajax({
    url: "http://host/dummyJsonp",
    jsonp: "myFunction",
    dataType: "jsonp",
    success: function( response ) {
        console.log( response ); // server response
    }
});

JQuery是否在一个请求中支持多个回调?

1 个答案:

答案 0 :(得分:0)

使用不同的参数多次调用回调是不可能的。由于ajax调用只发生一次,因此只有一个响应。这意味着您不能使用不同的参数调用多个回调。

如果您希望响应不同,则必须进行三次ajax调用,每次服务器必须给出不同的响应。

实现所需结果的最简单的解决方法是将所有响应放在服务器端的json对象中,如下所示:

{
a:'a',
b:'b',
c:'c'
}

在您的成功功能中,您只需使用所需的结果:

success: function( response ) {
    console.log( response.a ); // server response
    console.log( response.b ); // server response
    console.log( response.c ); // server response
}