httpRequest.js 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import axios from 'axios';
  2. import dd from 'gdt-jsapi';
  3. import base from "./base.js"
  4. export default () => {
  5. axios.defaults.baseURL = base.httpUrl; // 配置axios请求的地址
  6. console.log("axios.defaults.baseURL-------", axios.defaults.baseURL);
  7. axios.defaults.headers.post['Content-Type'] = 'application/json; charset=UTF-8';
  8. axios.defaults.crossDomain = true;
  9. axios.defaults.withCredentials = true; //设置cross跨域 并设置访问权限 允许跨域携带cookie信息
  10. //配置发送请求前的拦截器 可以设置token信息
  11. axios.interceptors.request.use(config => {
  12. console.log("config---------",config);
  13. dd.showLoading({ text: "加载中" });
  14. if (config.url.indexOf('geoserver/PH_DEMO') == '-1' && config.url.indexOf('/ding/authLogin') == '-1' && config.url.indexOf('/pub/ding/login') == '-1') {
  15. // var token = localStorage.getItem('token');
  16. // console.log('token--------',token);
  17. // if (token) {
  18. // config.headers['token'] = token;
  19. // }
  20. } else {
  21. config.withCredentials = false;
  22. }
  23. return config;
  24. }, error => {
  25. return Promise.reject(error);
  26. });
  27. // 配置响应拦截器
  28. axios.interceptors.response.use(res => {
  29. const code = res.data.code;
  30. console.log('配置响应拦截器----', code);
  31. dd.hideLoading();
  32. //这里面写所需要的代码
  33. if (res.data.code == '401') {
  34. //全局登陆过滤,当判读token失效或者没有登录时 返回登陆页面
  35. dd.toast({
  36. text: '登录失效请重新登录'
  37. });
  38. var url = base.url + '/statistics'; //http://192.168.1.221:9081/api + '/login?isLogin=1'
  39. var appId = base.appId;
  40. dd.openSchemeUrl({
  41. url: "taurus://taurusclient/action/open_app?appId=" + appId + "&type=1&offline=false&url=" + encodeURIComponent(url)
  42. }).then(res => { }) //"taurus://taurusclient/action/open_app?appId=" + 'phwj_h5-IYwQFALfovb3Jh27vAz2qe' + "&type=1&offline=false&url=" + encodeURIComponent('http://192.168.1.221:9081/api + '/login?isLogin=1'')
  43. return false;
  44. } else if (code == 500) {
  45. dd.toast({
  46. text: res.data.msg
  47. });
  48. return Promise.reject(new Error(res.data.msg))
  49. } else {
  50. return Promise.resolve(res.data);
  51. };
  52. }, error => {
  53. let { message } = error;
  54. if (message == "Network Error") {
  55. message = "网络异常,请稍后重试";
  56. } else if (message.includes("timeout")) {
  57. message = "系统接口请求超时";
  58. } else {
  59. message = "未知异常,请联系管理员";
  60. }
  61. dd.toast({
  62. text: message
  63. });
  64. dd.hideLoading();
  65. return Promise.reject(error);
  66. })
  67. axios.imgUrl = (actionName) => {
  68. // 非生产环境 && 开启代理, 接口前缀统一使用[/proxyApi/]前缀做代理拦截!
  69. return (axios.defaults.baseURL) + `/auth/file/manage/show/${localStorage.getItem('token')}?url=${encodeURIComponent('/' + actionName)}`;
  70. }
  71. return axios
  72. }