├── php-api/ # 改造后的PHP接口层 ├── java-ad-service/ # 若依框架微服务(广告+VIP+分账) ├── uniapp-reader/ # UniApp前端项目 │ ├── pages/ # 各端页面 │ └──
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. // src/utils/request.js
  2. import config from '@/config'
  3. const baseUrl = config.baseUrl
  4. // 使用直接导出的函数,避免 this 上下文问题
  5. export function get(url, params = {}, options = {}) {
  6. return request('GET', url, params, options)
  7. }
  8. export function post(url, data = {}, options = {}) {
  9. return request('POST', url, data, options)
  10. }
  11. function request(method, url, data = {}, options = {}) {
  12. return new Promise((resolve, reject) => {
  13. // 处理路径
  14. let finalUrl = url;
  15. // 特殊处理 Java API
  16. if (url.startsWith('/java-api')) {
  17. finalUrl = url
  18. }
  19. // 普通 API 处理
  20. else if (!url.startsWith('http')) {
  21. // 确保只有一个 /api 前缀
  22. if (!url.startsWith('/api')) {
  23. finalUrl = '/api' + (url.startsWith('/') ? url : `/${url}`);
  24. }
  25. }
  26. const baseUrl = process.env.VUE_APP_BASE_API || '/';
  27. const fullUrl = baseUrl + finalUrl;
  28. console.log('请求URL:', fullUrl, '方法:', method);
  29. uni.request({
  30. url: fullUrl,
  31. method,
  32. data,
  33. header: {
  34. 'Content-Type': 'application/json',
  35. ...(options.headers || {})
  36. },
  37. success: (res) => {
  38. console.log('API响应:', res);
  39. // 处理未授权情况
  40. if (res.statusCode === 401) {
  41. uni.showToast({
  42. title: '请先登录',
  43. icon: 'none'
  44. });
  45. uni.navigateTo({
  46. url: '/pages/login'
  47. });
  48. reject(new Error('未授权访问'));
  49. return;
  50. }
  51. // 统一处理成功响应
  52. if (res.statusCode >= 200 && res.statusCode < 300) {
  53. resolve(res.data)
  54. } else {
  55. // 尝试提取错误消息
  56. const errorMsg = res.data?.msg || res.data?.message || '请求失败';
  57. reject(new Error(errorMsg))
  58. }
  59. },
  60. fail: (err) => {
  61. console.error('请求失败:', err);
  62. reject(err)
  63. }
  64. })
  65. })
  66. }
  67. // 导出对象以兼容旧代码
  68. export default {
  69. get,
  70. post,
  71. request
  72. }