问一个关于jquery的jsonp的问题

请教一下,如果使用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方法处理返回的数据不是更好吗?

阅读 2.4k
1 个回答

其实不用再服务器约定成功返回执行的js方法的,只需要在success回掉方法中去处理就好了。

success方法就是ajax执行成功后默认执行的方法,如果出现其他的错误也可以采用error的失败回掉方法进行监听。

对了,忘记说了,success函数中的参数data(这个data名字是可以自己定义的,str、obj类似于这样形参名的都可以),data的值就是服务器端方法中返回的值,一般返回json,再用js对json数据进行处理即可。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进