12. 前后台交互ajax
12.1. 下载依赖包
npm install axios nprogress
12.2. 封装ajax请求模块
- api/ajax.js
import axios from 'axios'
import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
NProgress.configure({ showSpinner: false })
const service = axios.create({
baseURL: '/api',
timeout: 20000,
})
service.interceptors.request.use((config) => {
NProgress.start()
return config
})
service.interceptors.response.use(
response => {
NProgress.done()
return response.data
},
error => {
NProgress.done()
alert(`请求出错: ${error.message||'未知错误'}`)
return Promise.reject(error)
}
)
export default service
- api/index.js
import ajax from './ajax'
export const reqBaseCategoryList = ()=>ajax.get('/product/getBaseCategoryList')
12.3. App.vue
import {reqBaseCategoryList} from '@/api'
async mounted () {
const result = await reqBaseCategoryList()
console.log('result', result)
},
12.4. 配置代理
devServer: {
proxy: {
'/api': {
target: 'http://39.99.186.36',
changeOrigin: true
}
}
},