ajax.html 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>AJAX请求</title>
  8. </head>
  9. <body>
  10. <script>
  11. /**
  12. * type:请求类型 -- 必传
  13. * ajaxUrl:请求地址 -- 必传
  14. * data:请求参数(格式为object) -- 必传
  15. * callback:回调函数 -- 必传
  16. * otherData:回调函数的二次参数 -- 非必传
  17. * err:请求失败时回调函数 -- 非必传
  18. */
  19. function AJAX(type, ajaxUrl, data, callback, otherData, err) { // 默认为post请求,typeof(data) == 'string'是为get请求
  20. // 处理类型
  21. var ajaxType = 'post';
  22. if(type && typeof type == 'string') {
  23. type === 'get' ? (ajaxType = 'get') : (ajaxType = 'post')
  24. }
  25. // get请求参数处理,post请求即为object,不需要处理
  26. var datas;
  27. if(ajaxType === 'get') {
  28. if (!data || typeof data !== 'object') {
  29. return ''
  30. }
  31. var arr = [];
  32. for (var k in data) {
  33. var temp = k + '=' + (data[k] || data[k] == 0 ? data[k] : '');
  34. arr.push(temp);
  35. }
  36. datas = arr.join('&');
  37. } else {
  38. datas = data;
  39. }
  40. // 如果需要传入请求头
  41. var headers = {}
  42. var User_token = sessionStorage.getItem('Token'); //登录时获取的token,存到sessionStorage,然后获取放到这
  43. if (User_token) {
  44. headers = { "Authorization-Token": User_token || '' }
  45. }
  46. $.ajax({
  47. headers: headers,
  48. type: ajaxType,
  49. url: ajaxUrl,
  50. dataType: 'json',
  51. data: datas,
  52. contentType: 'application/x-www-form-urlencoded; charset=utf-8',
  53. success: function (res) {
  54. if (callback) {
  55. callback(res, otherData);
  56. }
  57. },
  58. error: function (res, textStatus, errorThrown) {
  59. if (err && typeof err == 'function') {
  60. err();
  61. } else {
  62. layui.layer.msg('请求异常,请重新请求', { time: 1500 });
  63. }
  64. }
  65. })
  66. }
  67. // 接口使用例子
  68. // var datas = {
  69. // name: 'zs',
  70. // age: 18
  71. // };
  72. // var ajaxUrl = 'https://www.baidu.com/'
  73. // AJAX('post', ajaxUrl, datas, function (res) {
  74. // if(res.code === 0) {
  75. // // 请求接口返回数据后的操作
  76. // }
  77. // })
  78. </script>
  79. </body>
  80. </html>