封装AJAX服务类

//调用方法
 server.resource('http://127.0.0.1:8080/api/user',{page:1},'GET').then(function(data){
        console.log('我执行成功')
    },function(data){
        console.log('请检查网络')
    })

 

//服务模块
var server = {};
server.resource = function(url, param, action) {
  return new Ajaxfactory(url, param, action);
};//共用服务块
function Ajaxfactory(url, param, action) {
  this.url = url;
  this.param = param;
  this.action = action;
  //返回promise对象用于外部调用
  return this.getData();
};
Ajaxfactory.prototype.getData = function() {
  var me = this;
  var LoginEl=null;
  var TipEl=null;
  //创建延迟对象
  var dtd=$.Deferred();
  $.ajax({
    type: me.action,
    url: me.url,
    data: me.param,
    dataType: 'json',
    timeout: 30000,
    success: function(data) {
      //后台状态返回0 延迟加载失败
      if(data.status==0){
        dtd.reject(data);
        LoginEl = $.loading({
          content: '请检查网络...',
        })
      }else{
        //后台状态返回1 延迟加载成功
        dtd.resolve(data);
        LoginEl.loading("hide");
      }
    },
    beforeSend: function(data) {
      LoginEl = $.loading({
        content: '加载中...',
      })
    },
    error: function(xhr, type) {
      LoginEl.loading("hide");
      TipEl = $.tips({
        content: '链接异常',
        stayTime: 10000,
        type: "warn"
      });
    }
  });
  //返回promise对象
  return dtd.promise();
};

 

posted @ 2015-10-23 17:37  开水中的糖  阅读(84)  评论(0)    收藏  举报