request.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // 网络请求封装
  2. // 根据环境配置 BASE_URL
  3. // 开发环境:改成你的本地 IP,如 'http://192.168.1.100:8080'
  4. // 生产环境:改成实际的服务器地址
  5. //const BASE_URL = 'http://localhost:8080';
  6. // const BASE_URL = 'http://106.14.104.158:8080';
  7. const BASE_URL = 'https://ditingcaishen.com/api';
  8. // OSS 文件上传基地址(与后端网关地址保持一致)
  9. const UPLOAD_URL = BASE_URL;
  10. export { BASE_URL, UPLOAD_URL };
  11. const request = (options) => {
  12. return new Promise((resolve, reject) => {
  13. const token = uni.getStorageSync('token');
  14. // 处理 GET 请求的 params(将 params 对象拼接到 URL)
  15. let url = BASE_URL + options.url;
  16. if (options.params && Object.keys(options.params).length > 0) {
  17. const queryString = Object.entries(options.params)
  18. .filter(([, value]) => value !== undefined && value !== null && value !== '')
  19. .map(([key, value]) => `${encodeURIComponent(key)}=${encodeURIComponent(value)}`)
  20. .join('&');
  21. if (queryString) {
  22. url += '?' + queryString;
  23. }
  24. }
  25. console.log('请求 URL:', url, '方法:', options.method);
  26. uni.request({
  27. url: url,
  28. method: options.method || 'GET',
  29. data: options.data || {},
  30. header: {
  31. ...options.header,
  32. 'clientid': 'e5cd7e4891bf95d1d19206ce24a7b32e',
  33. 'PLATFORM_CODE': 'PINGTAIDUAN',
  34. 'Authorization': token ? `Bearer ${token}` : '',
  35. 'Content-Type': 'application/json'
  36. },
  37. success: (res) => {
  38. console.log('响应状态码:', res.statusCode, '响应数据:', res.data);
  39. if (res.statusCode === 200) {
  40. if (res.data.code === 200 || res.data.code === 0) {
  41. resolve(res.data);
  42. } else if (res.data.code === 401) {
  43. // 登录失效,清除本地 token 并跳转登录页
  44. uni.removeStorageSync('token');
  45. uni.navigateTo({
  46. url: '/pages/login/login'
  47. });
  48. reject(res.data);
  49. } else {
  50. uni.showToast({
  51. title: res.data.msg || '服务器错误',
  52. icon: 'none'
  53. });
  54. reject(res.data);
  55. }
  56. } else {
  57. uni.showToast({
  58. title: '连接服务器失败: ' + res.statusCode,
  59. icon: 'none'
  60. });
  61. reject(res);
  62. }
  63. },
  64. fail: (err) => {
  65. console.error('网络请求失败:', err);
  66. uni.showToast({
  67. title: '网络请求失败: ' + (err.errMsg || '未知错误'),
  68. icon: 'none'
  69. });
  70. reject(err);
  71. }
  72. });
  73. });
  74. };
  75. export default request;