如何解決Vue請(qǐng)求接口出現(xiàn)跨域問(wèn)題Access-Control-Allow-Origin
vue請(qǐng)求接口出現(xiàn)跨域問(wèn)題
在使用axios請(qǐng)求了接口后,發(fā)現(xiàn)并沒(méi)有請(qǐng)求到,F(xiàn)12里面出現(xiàn)如下圖所示的報(bào)錯(cuò)

這是提示跨域了。
所有使用JavaScript的瀏覽器都會(huì)支持同源策略。
同源策略即指域名/協(xié)議/端口號(hào)相同。
只要有一個(gè)不同,就會(huì)當(dāng)作跨域請(qǐng)求。
解決方法
一種是讓后端接口里添加如下兩句代碼:
header('Access-Control-Allow-Origin:*');//允許所有來(lái)源訪問(wèn)
header('Access-Control-Allow-Method:POST,GET');//允許訪問(wèn)的方式
當(dāng)然求人不如求己,自己在項(xiàng)目里面設(shè)置代理
- 如果使用vue-cli腳手架創(chuàng)建的項(xiàng)目,找到
config文件夾下的index.js文件。 - 找到
dev下的proxyTable {}
舉個(gè)例子:
如果請(qǐng)求接口為http://www.baidu.com/user/info/list,請(qǐng)求頭為http://www.baidu.com/,那么就添加
"/user": {
target: "http://www.baidu.com/",
changeOrigin: true,
}
然后找到請(qǐng)求頁(yè)面,在axios的請(qǐng)求接口里面只寫(xiě)/user/info/list就行了。
更新: 另外一種配置方法:
同樣是更改config/index.js的配置文件:
module.exports = {
dev: {
proxyTable: {
'/api/: {
target: 'http://www.baidu.com/',
changeOrigin: true,
pathRewrire: {
'^/api': ''
}
}
}
}
上面的配置表示,遇到接口路徑有api的,就換成http://www.baidu.com/這個(gè)請(qǐng)求頭,同時(shí)把api去掉。
因?yàn)榭缬騿?wèn)題一般只存在開(kāi)發(fā)環(huán)境,所以我們可以把axios進(jìn)行如下配置:
if(process.env.NODE_ENV === 'production') {
axios.defaults.baseURL = '/'
} else {
axios.defaults.baseURL = '/api/'
}
這樣,我們?cè)?strong>開(kāi)發(fā)環(huán)境下,就可以通過(guò)增加api這個(gè)來(lái)配置跨域。
在Vue-cli3.0以上版本時(shí)
在項(xiàng)目根目錄下新建vue.config.js文件,在該文件內(nèi)新增如下配置:
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'https://baidu.com',
ws: true,
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
},
}
剩下的axios配置跟上面一樣,更多關(guān)于vue.config.js的配置文件請(qǐng)參考官方文檔吧
ok,就設(shè)置完成了,當(dāng)然最后一步千萬(wàn)不要忘了:
關(guān)掉頁(yè)面,從新npm run dev一下,要不即使設(shè)置代理完成也會(huì)請(qǐng)求不到,一定要注意
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
webpack開(kāi)發(fā)vue-cli的項(xiàng)目實(shí)踐
本文主要介紹了webpack開(kāi)發(fā)vue-cli的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
vue中data數(shù)據(jù)之間如何賦值問(wèn)題
這篇文章主要介紹了vue中data數(shù)據(jù)之間如何賦值問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。2022-09-09
Vue 計(jì)數(shù)器的實(shí)現(xiàn)
這篇文章主要介紹了Vue 計(jì)數(shù)器的實(shí)現(xiàn),主要利用HTML實(shí)現(xiàn)步驟現(xiàn)在頁(yè)面上簡(jiǎn)單實(shí)現(xiàn)一個(gè)計(jì)數(shù)器,內(nèi)容簡(jiǎn)單且詳細(xì),需要的朋友可以參考一下2021-10-10
vue圓形進(jìn)度條環(huán)形進(jìn)度條組件內(nèi)部顯示圖片示例
這篇文章主要為大家介紹了vue圓形進(jìn)度條環(huán)形進(jìn)度條組件內(nèi)部顯示圖片示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
vue.js element-ui tree樹(shù)形控件改iview的方法
這篇文章主要介紹了vue.js element-ui tree樹(shù)形控件改iview的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03
vue3?實(shí)現(xiàn)右鍵菜單編輯復(fù)制粘貼功能
在瀏覽器中,Vue3編輯器自帶默認(rèn)右鍵菜單,然而,在Electron桌面應(yīng)用中,這一功能需自行編寫(xiě)代碼實(shí)現(xiàn),本文詳細(xì)介紹了如何在Vue3中手動(dòng)實(shí)現(xiàn)右鍵菜單的編輯、復(fù)制、粘貼功能,并提供了代碼示例,更多細(xì)節(jié)和相關(guān)教程可參考腳本之家的其他文章2024-10-10
vue mixins組件復(fù)用的幾種方式(小結(jié))
這篇文章主要介紹了vue mixins組件復(fù)用的幾種方式(小結(jié)),vue中提供了一種混合機(jī)制mixins,用來(lái)更高效的實(shí)現(xiàn)組件內(nèi)容的復(fù)用,有興趣的可以了解一下2017-09-09

