Vue-創建axios實例並實現跨域請求
.env配置文件
VUE_APP_BASE_API=/server
request.js
import axios from 'axios'
const test = axios.create({
baseURL: process.env.VUE_APP_BASE_API, // api 的 base_url
timeout: 50000, // request timeout
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
withCredentials: true
})
export default test
創建api請求接口
import request from './request.js'
/**
* 查詢所有用戶信息
*/
export function list () {
return request({
url: '/all/users',
method: 'get'
})
}
配置vue.config.js代理請求
module.exports = {
devServer: {
port: 8000, // 改端口號
open: true,
proxy: {
// 以server開頭的請求才會使用到該代理,即http://localhost:8000/server/query/users.
'/server': {
target: 'http://localhost:8081/', // 服務器地址
changeOrigin: true, // 開啟跨域
pathRewrite: {
// 當請求以/server開頭時,將其置為空 則請求最終為http://localhost:8081/query/users
'/server': ''
}
}
}
}
}
創建User.vue組件實現具體訪問
<template>
……
</template>
<script>
import * as UserApi from '../api/user.js''
export default {
name: 'User',
data () {
return {
...
}
},
mounted: function () {
this.loadUser()
},
methods: {
loadUser () {
UserApi.list().then(res => {
console.log(res.data)
})
}
}
</script>
<style scoped>
……
</style>
前端訪問地址為:http://localhost:8000/server/query/users
會被代理解析為:http://localhost:8081/query/users 訪問到服務器端獲取數據
可以在控制台查看獲取到的數據