request.js用來請求數據,封裝的代碼如下:
import axios from 'axios' const request = axios.create({ timeout: 5000 }) // request 攔截器 // 可以自請求發送前對請求做一些處理 // 比如統一加token,對請求參數統一加密 request.interceptors.request.use(config => { config.headers['Content-Type'] = 'application/json;charset=utf-8'; // config.headers['token'] = user.token; // 設置請求頭 return config }, error => { return Promise.reject(error) }); // response 攔截器 // 可以在接口響應后統一處理結果 request.interceptors.response.use( response => { let res = response.data; // 如果是返回的文件 if (response.config.responseType === 'blob') { return res } // 兼容服務端返回的字符串數據 if (typeof res === 'string') { res = res ? JSON.parse(res) : res } return res; }, error => { console.log('err' + error) // for debug return Promise.reject(error) } ) export default request
vue.config.js:
// 跨域配置 module.exports = { devServer: { //記住,別寫錯了devServer//設置本地默認端口 選填 port: 9876, proxy: { //設置代理,必須填 '/api': { //設置攔截器 攔截器格式 斜杠+攔截器名字,名字可以自己定 target: 'http://localhost:9999', //代理的目標地址 changeOrigin: true, //是否設置同源,輸入是的 pathRewrite: { //路徑重寫 '/api': '' //選擇忽略攔截器里面的單詞 } } } } }