├── php-api/ # 改造后的PHP接口层 ├── java-ad-service/ # 若依框架微服务(广告+VIP+分账) ├── uniapp-reader/ # UniApp前端项目 │ ├── pages/ # 各端页面 │ └──
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

request.js 1.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. // src/utils/request.js
  2. import config from '@/config'
  3. const baseUrl = config.baseUrl
  4. const http = {
  5. get(url, params = {}, options = {}) {
  6. return this.request('GET', url, params, options)
  7. },
  8. post(url, data = {}, options = {}) {
  9. return this.request('POST', url, data, options)
  10. },
  11. request(method, url, data = {}, options = {}) {
  12. return new Promise((resolve, reject) => {
  13. // 确保URL以斜杠开头
  14. let finalUrl = url.startsWith('/') ? url : `/${url}`;
  15. // 特殊处理Java API请求
  16. if (url.startsWith('/java-api')) {
  17. finalUrl = url;
  18. }
  19. // 其他API添加前缀
  20. else if (!url.startsWith('http')) {
  21. finalUrl = '/api' + finalUrl;
  22. }
  23. const header = {
  24. 'Content-Type': 'application/json',
  25. ...(options.headers || {})
  26. }
  27. // 添加认证token
  28. const token = uni.getStorageSync('token')
  29. if (token) {
  30. header['Authorization'] = `Bearer ${token}`
  31. }
  32. uni.request({
  33. url: baseUrl + finalUrl,
  34. method,
  35. data,
  36. header,
  37. success: (res) => {
  38. // 统一处理成功响应
  39. if (res.statusCode >= 200 && res.statusCode < 300) {
  40. resolve(res.data)
  41. } else {
  42. // 尝试提取错误消息
  43. const errorMsg = res.data?.msg || res.data?.message || '请求失败';
  44. reject(new Error(errorMsg))
  45. }
  46. },
  47. fail: (err) => {
  48. reject(err)
  49. }
  50. })
  51. })
  52. }
  53. }
  54. // 确保正确导出
  55. export default http