您好,登錄后才能下訂單哦!
首先npm安裝好axios,其次在main.js中引入:
import axios from 'axios'
Vue.prototype.$axios = axios //把axios掛載到vue的原型中,在vue中每個組件都可以使用axios發送請求
Vue.prototype.HOME = '/api' //重要在于這里,Vue.prototype.HOME = '/api'是一個定值,默認指向localhost,所有修改指向路徑為'/api',配置文件index.js定義的可跨域路徑
第二步就是修改上述所說的config>index.js配置文件
module.exports = {
dev: {
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: { //axios跨域處理
'/api': { //此處并非和url一致
target:'http://192.168.2.80:8081/',
changeOrigin:true, //允許跨域
pathRewrite:{
'^/api': ''
}
}
}
}
....以下省略
}
最后就是在需要跨域的文件中操作了:
created() {
var url = this.HOME + '/index***ds/getFe***List'; //HOME變量為已掛載的可跨域域名,這里將其拼接完,成為一個完整路徑
this.$axios({ //this代表vue對象,之前在入口文件中把axios掛載到了vue中,所以這里直接用this.$axios調用axios對象
method: 'post',
url: url,
data: {feedType: 1, page: 1, pagesize: 10}
}).then(function (res) {
console.log(res);
}).catch(function (err) {
console.log(err);
})
},
這樣就可以成功跨域,拿到后臺返回的數據了。
需要注意的是:在Vue項目中如果我們修改了config里面的文件,請千萬要重新啟動項目,重新啟動項目,重新啟動項目,不然一定會報錯。
當然,這只是在本地可以正常跨域訪問接口,線上的話,還需要和后臺協商處理
升級到 Vue3 后,會發現 Vue2 中存放配置的 config 文件夾沒有了,大家不要慌張。可以在 package.json 文件的同級目錄下創建 vue.config.js 文件。給出該文件的基礎配置:
module.exports = {
outputDir: 'dist', //build輸出目錄
assetsDir: 'assets', //靜態資源目錄(js, css, img)
lintOnSave: false, //是否開啟eslint
devServer: {
open: true, //是否自動彈出瀏覽器頁面
host: "localhost",
port: '8081',
https: false, //是否使用https協議
hotOnly: false, //是否開啟熱更新
proxy: null,
}
}
Vue3 解決跨域,內容只有第二步配置代理 和 Vue2 不同,其他的一致。
devServer: {
open: true, //是否自動彈出瀏覽器頁面
host: "localhost",
port: '8081',
https: false,
hotOnly: false,
proxy: {
'/api': {
target: 'https://www.v2ex.com/api', //API服務器的地址
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
},
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。