方式1:
$(function(){
load(id).done(function(data) {
console.log(data);
});
})
function load(id) {
return promise = $.ajax({
type: "GET",
data: {
id: id,
key: "EG2BZ-JRT6X-WAU4D-7SWGR-FSFGV-7YFVH",
output: "jsonp"
},
url: "https://apis.map.qq.com/ws/district/v1/getchildren",
dataType: "jsonp",
jsonp: "callback"
})
}
方式2:
function load(id){
return $.ajax({
type: "GET",
async: false,
data: {
id: id,
key: "EG2BZ-JRT6X-WAU4D-7SWGR-FSFGV-7YFVH",
output: "jsonp"
},
url: "https://apis.map.qq.com/ws/district/v1/getchildren",
dataType: "jsonp",
jsonp: "callback"
})
}
var promise = load(440000);
promise.done(function(data){
alert("aa");
}).fail(function(){ alert("出错啦!"); });
当你调用AJAX希望在外部处理数据或者判断AJAX请求状态时做出不同处理就可以用上面的案例,注意这种方法处理时千万不要在AJAX内部调用success和error
除了done还有其它的状态判断
always():一定会执行
catch():执行出错时执行(本体 object)
done():执行成功时执行
failed():执行出错时执行(服务器拒绝)
pipe():过滤方法
progress():当对象生成进度通知时,调用添加处理程序。
Promise():返回Object(延迟)的Promise(承诺)对象。
state():确定一个Object(延迟)对象的当前状态。
then():当(延迟)对象解决,拒绝或仍在进行中时,调用添加处理程序。
这些只是常用的一些方法,如需更多,需要多查看Api
如有更好的方法或有什么不对之处欢迎大家指出!谢谢,不喜务喷喔 !