jsonp的原理是动态插入一个script标签,在服务端返回合法的jsonpCallback代码,自动执行jsonpCallback方法,那么ajax的success方法和error方法是如何被调用的?
$.ajax({
type: "get",
url: "xxx",
dataType: "jsonp",
jsonp: "callback",
jsonpCallback:"jsonpCallback",
success: function(json){
alert('json:' + json);
},
error: function(){
alert('fail');
}
});
jsonp的时候不会调用success方法,它在接收到服务端数据时,使用的是<script> 标签而不是 XMLHttpRequest 对象。这种情况下,$.ajax() 不再返回一个 XMLHttpRequest 对象,并且也不会处理beforeSend、success这些回调函数,我理解的就是它有他自己的callback回调函数