🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
1.nuxt做数据交互需要依靠 `@nuxtjs/axios` `@nuxtjs/proxy` ``` npm install @nuxtjs/axios --save --registry=https://registry.npm.taobao.org npm install @nuxtjs/proxy --save --registry=https://registry.npm.taobao.org ``` 2.在nuxt.config.js中进行配置 ``` modules:[ '@nuxtjs/axios' ] ``` 3.使用`axios` ``` async asyncData({$axios}){ const res = await $axios({url:'接口'}) } ``` 4.处理跨域请求, 在nuxt.config.js中进行配置 ``` axios:{ proxy:true,//  开启跨域行为 prefix:'/api/v1/blogApi',  //配置基本的url地址    }, proxy:{ '/api':{ target:'http://www.mileduo.com',  //  代理转发的地址 pathRewrite:{ // '^/api':''                // 找到地址中的api并替换成空            } }   }, ``` 5.定义拦截器,修改nuxt.config.js ``` plugins:[ { src:'~/plugins/axios', 'ssr':true // 服务端渲染 } ] ``` 6.书写axios.js ``` export default function({$axios,redirect,route,store}){ // 基本配置 $axios.defaults.timeout = 1000 $axios.defaults.validateStatus = (status)=>{ return status >= 200 && status < 600 } // 请求拦截 $axios.onRequest(config=>{ config.headers.token = '' return config     }) // 相应拦截 $axios.onResponse(res\=>{ returnres.data     }) // 错误处理 $axios.onError(error\=>{ return error     }) } ``` 7.Promise返回值 ``` return new Promise(resolve=>{ resolve(res.data) }) ```