lyuehh
12/12/2012 - 10:43 AM

js examples

js examples

/*
  demo1: do not repeat yourself
*/

$.ajax({
  'url': '/user',
  'data': 'dept=aaa&active=true&_=' + Math.random(),
  'dataType': 'json',
  'headers': {
    'X-CSRF-Token': $('#csrf').attr('content');
  },
  'type': 'GET',
  'success': function(ret) {
    if(ret.result === 0) {
      console.log('data: ' + JSON.stringify(ret.data));
    } else {
      console.log('request error: ' + ret.msg);
    }
  },
  'error': functoin(jqXHR, textStatus, errorThrown) {
    console.log('ajax error...')
  }
});

/*
  1. 全局的ajaxError
*/
$(document).ajaxError(function() {
  console.log('ajax error...')
});

/*
  2. 全局的ajaxSetup
*/
$.ajaxSetup({
  'dataType': 'json',
  'headers': {
    'X-CSRF-Token': $('#csrf').attr('content');
  },
  'cache': false
});

/*
  3. 使用快捷方法
*/
$.get('/user', function(ret) {
  // ....
});

/*
  4. 统一的错误处理
*/
var showErrorTips = function(ret) {
  console.log('request error: ' + ret.msg)
};
var Ajax = {
    get: function(url, callback) {
      $.get(url, function(ret) {
        if(ret.result === 0) {
          if(ret.data) {
            callback(ret.data);
          } else {
            callback(ret);
          }
        } else {
          showErrorTips(ret);
        }
      });
    },
    post: function(url, data, callback) {
      $.post(url, data, function (ret) {
        if(ret.result === 0) {
          if(ret.data) {
            callback(ret.data);
          } else {
            callback(ret);
          }
        } else {
          showErrorTips(ret);
        }
      });
    }
  };
  
/*
  result  
*/
Ajax.get('/user' + '?dept=aaa&active=true', function(data) {
  console.log('data: ' + JSON.stringify(data));
})