封装请求更改
This commit is contained in:
@ -1,26 +1,18 @@
|
|||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
// 如果使用 Vuex 且需要 token,请取消注释
|
const BASE_URL = 'http://192.168.2.23:8000'
|
||||||
// import store from '@/store'
|
|
||||||
// 示例:如果你有身份验证相关的工具函数
|
|
||||||
// import { getToken } from '@/utils/auth'
|
|
||||||
|
|
||||||
// 创建 Axios 实例
|
// 创建 Axios 实例
|
||||||
const service = axios.create({
|
const service = axios.create({
|
||||||
// 重要:请在此处配置你的 API 基础 URL
|
baseURL: BASE_URL,
|
||||||
// 你可以从环境变量或配置文件中获取
|
timeout: 10000
|
||||||
baseURL: process.env.VUE_APP_BASE_API || '/api', // 示例基础 URL
|
|
||||||
timeout: 10000 // 请求超时时间 (毫秒)
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// 请求拦截器
|
// 请求拦截器
|
||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
config => {
|
config => {
|
||||||
// 如果需要,添加 Authorization 请求头
|
console.log('Full Request URL:', config.baseURL + config.url)
|
||||||
// 示例:检查用户是否登录(例如,通过 Vuex store 或 auth 工具函数)
|
const token = uni.getStorageSync('token')
|
||||||
// if (store.getters.token) {
|
if (token) {
|
||||||
// // 根据你的认证方案调整
|
config.headers['Authorization'] = 'Bearer ' + token
|
||||||
// config.headers['Authorization'] = 'Bearer ' + getToken()
|
}
|
||||||
// }
|
|
||||||
config.headers['Content-Type'] = config.headers['Content-Type'] || 'application/json';
|
config.headers['Content-Type'] = config.headers['Content-Type'] || 'application/json';
|
||||||
return config
|
return config
|
||||||
},
|
},
|
||||||
@ -30,43 +22,17 @@ service.interceptors.request.use(
|
|||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
// 响应拦截器
|
// 响应拦截器
|
||||||
service.interceptors.response.use(
|
service.interceptors.response.use(
|
||||||
/**
|
|
||||||
* 如果你想获取诸如头信息或状态之类的http信息
|
|
||||||
* 请返回 response => response
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 通过自定义代码确定请求状态
|
|
||||||
* 这里只是一个例子
|
|
||||||
* 你也可以通过HTTP状态码判断状态
|
|
||||||
*/
|
|
||||||
response => {
|
response => {
|
||||||
const res = response.data
|
const res = response.data
|
||||||
// 示例:根据你的后端响应结构调整此部分
|
|
||||||
// 如果自定义状态码不是 200 (或你的成功状态码),则判断为错误。
|
|
||||||
if (res.code !== 200 && res.code !== 0) { // 假设 200 或 0 表示成功
|
|
||||||
// 你可以在此添加全局错误处理,例如显示提示消息
|
|
||||||
// uni.showToast({ title: res.message || '错误', icon: 'none' });
|
|
||||||
console.error('API Error:', res.message || 'Error')
|
console.error('API Error:', res.message || 'Error')
|
||||||
|
|
||||||
// 示例:处理特定的错误代码,例如未授权 (401)
|
|
||||||
// if (res.code === 401) {
|
|
||||||
// // 例如:重定向到登录页面
|
|
||||||
// }
|
|
||||||
return Promise.reject(new Error(res.message || 'Error'))
|
return Promise.reject(new Error(res.message || 'Error'))
|
||||||
} else {
|
} else {
|
||||||
// 如果成功,则返回响应的数据部分
|
return res
|
||||||
// 如果后端没有将数据包装在 'data' 字段中,请调整此项
|
|
||||||
return res.data
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error => {
|
error => {
|
||||||
console.error('Response Error:', error.message) // 用于调试
|
|
||||||
// 处理网络错误或其他错误
|
|
||||||
// uni.showToast({ title: error.message, icon: 'none' });
|
|
||||||
return Promise.reject(error)
|
return Promise.reject(error)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
Reference in New Issue
Block a user