nuxt axios request 请求封装
时间: 2023-09-27 11:06:51 浏览: 55
在Nuxt中,可以通过在nuxt.config.js中配置axios来对axios请求进行封装。首先,确保已经安装了@nuxtjs/axios和@nuxtjs/proxy两个模块。后,在nuxt.config.js中进行如下配置:
```javascript
export default {
modules: [
'@nuxtjs/axios',
'@nuxtjs/proxy'
],
axios: {
proxy: true
},
proxy: {
'/api': {
changeOrigin: true,
target: 'http://XXX.XXX.X.X',
pathRewrite: { '^/api': '' }
}
}
}
```
这样就完成了对axios请求的封装。其中,`changeOrigin`设置为true可以允许跨域,`target`指定了允许跨域的服务器地址,`pathRewrite`用于重写请求路径。
相关问题
nuxtjs axios二次封装
好的,针对你的问题,我可以给出一个简单的 nuxtjs axios 二次封装的示例代码:
```javascript
// plugins/axios.js
import axios from 'axios'
const instance = axios.create({
baseURL: process.env.BASE_URL,
timeout: 5000
})
export default function ({ store }) {
instance.interceptors.request.use(config => {
const token = store.state.token
if (token) {
config.headers.Authorization = `Bearer ${token}`
}
return config
}, error => {
return Promise.reject(error)
})
instance.interceptors.response.use(response => {
return response.data
}, error => {
return Promise.reject(error)
})
return instance
}
```
在上面的代码中,我们首先创建了一个 axios 实例,并设置了一些默认配置。然后,我们通过 `interceptors` 对请求和响应进行了拦截和处理。在请求拦截器中,我们从 Vuex 中获取了用户的 token,并将其添加到请求头中;响应拦截器中,我们只返回响应数据的 `data` 字段。
最后,我们将这个 axios 实例作为插件导出,以便在 nuxtjs 中使用。
Nuxt3数据请求封装
Nuxt3中的数据请求可以通过使用Nuxt3自带的useFetch方法进行统一的封装。此方法可以帮助你处理公共的请求逻辑。另外,Nuxt3官方团队还引入了ofetch项目,并将其集成到Nuxt3中,使用$fetch方法来进行网络请求。相比于Axios,Nuxt3不推荐使用Axios进行网络请求,而是推荐使用Fetch API进行网络请求。这是因为现如今网络请求功能逐渐被Fetch API取代,浏览器和Node v17.5已原生支持fetch。当然,在使用Nuxt3的数据请求封装时,你还可以参考官方文档和社区优秀项目来获取更详细的使用方式和技巧。希望对你有所帮助!