当前位置:   article > 正文

uni.app小程序的ajax封装详细讲解_uniapp ajax

uniapp ajax

 我懒得说了

  1. //放url相同的片段
  2. const rootUrl = ""
  3. // 示例: ajax({ url:'/api/login', param: param, method: "POST" });
  4. export default function ajax(config, isLoading = true) {
  5. let url = rootUrl + (config.url || '');
  6. let param = config.param || {};
  7. let method = (config.method || 'GET').toUpperCase();
  8. let promise = '';
  9. const headers = {
  10. 'Authorization': 'Bearer '+ uni.getStorageSync('token') || null,
  11. ...config.headers
  12. };
  13. // isLoading ? uni.showLoading({ title: '加载中...', }) : ''; // 中心显示加载中弹窗
  14. return new Promise((resolve, reject) => {
  15. setTimeout( () => { // 通过定时器实现真正的异步请求
  16. uni.request({
  17. url,
  18. method,
  19. data: param,
  20. header: headers,
  21. success(res) {
  22. // console.log("ajax: res:", res);
  23. if(!res){
  24. reject('返回值已被您拦截!');
  25. return;
  26. }
  27. // 获取Token。注:Web端为authorization,小程序端为Authorization。
  28. if(res.header && (res.header.authorization || res.header.Authorization)){
  29. // console.log('authorization:', res.header.authorization);
  30. uni.setStorageSync('token', (res.header.authorization || res.header.Authorization));
  31. }
  32. if(res.statusCode !== 200){
  33. // console.log("请求返回的状态码非200: " + url + " : "+ JSON.stringify(res))
  34. reject(res);
  35. return;
  36. }
  37. // 返回的数据体
  38. if(res.data && res.data.err === 0 ){
  39. resolve(res.data.data || {});
  40. return;
  41. }
  42. else if( res.data.err >= 6000 && res.data.err <= 6999 ){
  43. // console.log("ajax: unlogin:", res.data.err)
  44. uni.showModal({
  45. title:'登录提示',
  46. content: res.data.msg || '您尚未登录',
  47. success(e) {
  48. // console.log("ajax: showModal:", e)
  49. if (e.confirm) {
  50. uni.redirectTo({
  51. url:'/pages/login/login-account'
  52. })
  53. }
  54. }
  55. })
  56. reject(res.data); //没登录点击我的 返回这个报错
  57. }
  58. else {
  59. reject(res.data); //如果没有登录 其他页面返回这个报错
  60. }
  61. },
  62. fail(err) { //接口失败调用
  63. console.warn('ajax: fail:', err)
  64. reject(err);
  65. return;
  66. },
  67. complete() { //
  68. // uni.hideLoading();
  69. uni.stopPullDownRefresh()
  70. },
  71. })
  72. }, 50);
  73. });
  74. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/147994
推荐阅读
相关标签
  

闽ICP备14008679号