可能是vue中使用axios最詳細教程
前提條件:vue-cli 項目
安裝:
npm axios from 'axios'
較科學的封裝好的axios:(new-axios.js)
import axios from 'axios' import { Notify } from 'vant'; // import Vue from 'vue' // import store from '@/store' // 我此項目沒有用到vuex,所以vuex代碼的都註釋瞭,需要的自己打開使用 // import {ACCESS_TOKEN} from '@/store/mutation-types' // 創建 axios 實例 const requests = axios.create({ baseURL: process.env.VUE_APP_API, // 基礎url,如果是多環境配置這樣寫,也可以像下面一行的寫死。 // baseURL: 'http://168.192.0.123', timeout: 6000 // 請求超時時間 }) // 錯誤處理函數 const err = (error) => { if (error.response) { const data = error.response.data // const token = Vue.ls.get(ACCESS_TOKEN) if (error.response.status === 403) { Notify({ type: 'danger', message: data.message||data.msg }); } if (error.response.status === 401) { Notify({ type: 'danger', message: '你沒有權限。' }); // if (token) { // store.dispatch('Logout').then(() => { // setTimeout(() => { // window.location.reload() // }, 1500) // }) // } } } return Promise.reject(error) } // request interceptor(請求攔截器) requests.interceptors.request.use(config => { // const token = Vue.ls.get(ACCESS_TOKEN) const token = localStorage.getItem('token') if (token) { config.headers['token'] = token // 讓每個請求攜帶自定義 token 請根據實際情況自行修改 } return config }, err) // response interceptor(接收攔截器) requests.interceptors.response.use((response) => { const res = response.data if (res.code !== 0&&res.code!==200) { Notify({ type: 'danger', message: res.message||res.msg }); // 401:未登錄; if (res.code === 401||res.code === 403||res.code===999) { Notify({ type: 'danger', message: '請登錄'}); } return Promise.reject('error') } else { return res } }, err) export default { requests }
main.js 引入,添加到vue原型
import requests from '@s/basejs/new-axios.js' // 記得改為你的路徑 Vue.prototype.rq = requests // 此處命名為rq,你可以改
使用
this.rq.get('/api/product/get?productChannelId='+this.productChannelId).then(res=>{ console.log(res) }) // 傳對象參數 // get請求記得加params this.rq.get('/api/product/get,{params:{name:'abc'}}).then(res=>{ console.log(res) }) this.rq.post('/api/product/get,{name:'abc'}).then(res=>{ console.log(res) })
以下步驟一般不需要
開發環境如果要跨域,解決跨域問題(設置代理):vue-cli 3.0的在 package.json 同級目錄新建一個 vue.config.js 文件,加入下面代碼,其他版本找到配置文件的devServer加入代碼
:
module.exports = { //axios域代理,解決axios跨域問題 baseUrl: '/', devServer: { proxy: { '': { target: 'http://192.168.0.108:8090', changeOrigin: true, ws: true, pathRewrite: { } } } } }
修改完後記得重啟項目應用配置
總結
到此這篇關於vue中使用axios最詳細教程的文章就介紹到這瞭,更多相關vue使用axios教程內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- vue日常開發基礎Axios網絡庫封裝
- vue項目及axios請求獲取數據方式
- 在項目中封裝axios的實戰過程
- Vue項目中封裝axios的方法
- vue3+vite+axios 配置連接後端調用接口的實現方法