请教一下,如果使用jquery的ajax方法去获得jsonp的话,关于执行回调函数的问题,请看如下代码:
$.ajax({
url:' jsonp.php?callback=test',
type: 'GET',
dataType: jsonp,
timeout: 3000,
success: function(data){
// 返回的时候,执行了success方法,但是这里data是什么内容呢?
alert(‘load jsonp success’);
}
});
function test(data){
alert(data);
}
比如服务器预定返回的是test('123'),这个时候按道理会执行test()函数,alert出123,但是$.ajax中的success方法应该也是会执行的吧,我想问的是:
success方法它里面的data是什么内容呢,难道也是服务器返回的123吗,如果也是123这个内容,是不是就没有必要定义function test() {alert(data)}了,因为在success方法处理返回的数据不是更好吗?
其实不用再服务器约定成功返回执行的js方法的,只需要在success回掉方法中去处理就好了。
success方法就是ajax执行成功后默认执行的方法,如果出现其他的错误也可以采用error的失败回掉方法进行监听。
对了,忘记说了,success函数中的参数data(这个data名字是可以自己定义的,str、obj类似于这样形参名的都可以),data的值就是服务器端方法中返回的值,一般返回json,再用js对json数据进行处理即可。