由于瀏覽器的同源策略,前后端分離的項目,調試的時候總是會遇到跨域的問題,這里通過修改前端代碼解決跨域問題。
首先先查看前端代碼的根目錄下,有沒有vue.config.js文件, 若有,使用方法1,若沒有此文件,使用方法2
方法1
將vue.config.js修改如下:
module.exports = {devServer: {// 設置為0.0.0.0則所有的地址均能訪問host: '0.0.0.0',port: 8080,https: false,hotOnly: false,// 跨域問題解決 代理(關鍵部分)proxy: {'/api': {target: 'http://localhost:8081', // 設置后端接口的訪問地址changeOrigin: true,pathRewrite: {'^/api': '' // 將請求路徑中的 '/api' 替換為空字符串}}}}
}
方法2
在項目根目錄的/config/index.js文件中,找到 proxyTable,然后進行同樣的配置:
proxyTable: {'/api': {target: 'http://localhost:8081', // 設置后端接口的訪問地址changeOrigin: true,pathRewrite: {'^/api': '' // 將請求路徑中的 '/api' 替換為空字符串}}},
通過方法1或者方法2配置好之后,設置axios請求的baseURL屬性: '/api',相當于用'/api'代理請求后端的url
const request = axios.create({baseURL: '/api',timeout: 5000
});export default request;
可以參考我的方式,將請求的API進行封裝?
import Vue from 'vue'
import request from '@/api/request'// axios.defaults.baseURL = "/api"
export function postAction(url, parameter) {return request({url: url,method: 'post',data: parameter})
}
在調用后端接口時,傳參時只需要拼接后面那部分就可以了