vue項(xiàng)目中燃领,使用axios跨域處理
我們?cè)谑褂胿ue-cli啟動(dòng)項(xiàng)目的時(shí)候cnpm start便可以啟動(dòng)我們的項(xiàng)目了,通常我們的請(qǐng)求地址是以localhost:8080來請(qǐng)求接口數(shù)據(jù)的
想要實(shí)現(xiàn)跨域拿到別人域名的東西锦援,我們可以在vue-cli配置文件里面設(shè)置一個(gè)代理猛蔽;
在vue-cli項(xiàng)目中的config文件夾下的index.js配置文件中,dev里面配置:
dev: {
env: require('./dev.env'),
port: 8080,
autoOpenBrowser: true,
assetsSubDirectory: 'static',
assetsPublicPath: '/',
proxyTable: {},
cssSourceMap: false
}
我們?cè)谑褂胊xios發(fā)送請(qǐng)求時(shí)雨涛,可以把a(bǔ)xios綁定在Vue的原型上Vue.prototype.$http=axios枢舶。這樣我們可以全局使用,this.$$http.get("url").then(res=>{})因?yàn)槭腔趐romis的所以可以直接.then
如果請(qǐng)求的地址跨域替久,我們要在域名后面加上一個(gè)“暗號(hào)”
例如:“https://m.maizuo.com/v4/api/film/now-playing?__t=1525397149162&page=1&count=5”
這個(gè)網(wǎng)址我們寫成https://m.maizuo.com/mz/v4/api/film/now-playing?__t=1525397149162&page=1&count=5網(wǎng)址中多出來的/mz是我們自己起的名字凉泄,在dev的proxyTable: {}, 進(jìn)行配置,vue-cli有能力獲取到/mz從而做一些事情蚯根;
proxyTable: {
'/mz': {//在這里可以匹配"/mz暗號(hào)"
target: "https://m.maizuo.com/",//這里是真正的目標(biāo)域
changeOrigin: true, // 如果接口跨域后众,需要進(jìn)行這個(gè)參數(shù)配置
//這時(shí)我們發(fā)送的url是帶有暗號(hào)的url所以下面我們把暗號(hào)去掉
pathRewrite: {
'^/mz': ''//匹配暗號(hào)用空字符串代替
}
}
}
修改了配置項(xiàng)要重新啟動(dòng)服務(wù)器胀糜,此時(shí)我們就能拿到跨域的數(shù)據(jù)了。