common.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. /**
  2. * type:请求类型 -- 必传
  3. * ajaxUrl:请求地址 -- 必传
  4. * data:请求参数(格式为object) -- 必传
  5. * callback:回调函数 -- 必传
  6. * otherData:回调函数的二次参数 -- 非必传
  7. * err:请求失败时回调函数 -- 非必传
  8. */
  9. function AJAX(type, ajaxUrl, data, callback, otherData, err) { // 默认为post请求,typeof(data) == 'string'是为get请求
  10. // 处理类型
  11. var ajaxType = 'post';
  12. if(type && typeof type == 'string') {
  13. type === 'get' ? (ajaxType = 'get') : (ajaxType = 'post')
  14. }
  15. // get请求参数处理,post请求即为object,不需要处理
  16. var datas;
  17. if(ajaxType === 'get') {
  18. if (!data || typeof data !== 'object') {
  19. return ''
  20. }
  21. var arr = [];
  22. for (var k in data) {
  23. var temp = k + '=' + (data[k] || data[k] == 0 ? data[k] : '');
  24. arr.push(temp);
  25. }
  26. datas = arr.join('&');
  27. } else {
  28. datas = data;
  29. }
  30. // 如果需要传入请求头
  31. var headers = {}
  32. var User_token = sessionStorage.getItem('Token'); //登录时获取的token,存到sessionStorage,然后获取放到这
  33. if (User_token) {
  34. headers = { "Authorization-Token": User_token || '' }
  35. }
  36. $.ajax({
  37. headers: headers,
  38. type: ajaxType,
  39. url: ajaxUrl,
  40. dataType: 'json',
  41. data: datas,
  42. // async:false,
  43. contentType: 'application/x-www-form-urlencoded; charset=utf-8',
  44. success: function (res) {
  45. if (callback) {
  46. callback(res, otherData);
  47. }
  48. },
  49. error: function (res, textStatus, errorThrown) {
  50. if (err && typeof err == 'function') {
  51. err();
  52. } else {
  53. console.error('请求异常,请重新请求', { time: 1500 });
  54. }
  55. }
  56. })
  57. }