request.js 3.0 KB

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