vue中如何配置proxy代理
vue配置proxy代理
如果你的前端應(yīng)用和后端 API 服務(wù)器沒(méi)有運(yùn)行在同一個(gè)主機(jī)上(即解決跨域問(wèn)題,用proxy代理請(qǐng)求一下),你需要在開(kāi)發(fā)環(huán)境下將 API 請(qǐng)求代理到 API 服務(wù)器。
這個(gè)問(wèn)題可以通過(guò) vue.config.js 中的 devServer.proxy 選項(xiàng)來(lái)配置。
將

轉(zhuǎn)發(fā)到
https://apimusic.linweiqin.com
app.vue文件
<template>
<div id="app">
<h1>hello Vue cli</h1>
<HelloWorld></HelloWorld>
</div>
</template><script>
/* @ => src */
// import HelloWorld from "./components/HelloWorld.vue";
import HelloWorld from "@/components/HelloWorld.vue";
/* 1. 引入 axios 請(qǐng)求庫(kù) */
import axios from "axios";
/* 組件的配置項(xiàng) */
export default {
created() {
// axios
// .get("song/url?id=504835560")
// .then((res) => {
// console.log(res);
// });
axios
.get("/song/url?id=504835560")
.then((res) => {
console.log(res);
});
axios.get("/api/s/getHotProducts").then(res=>{
console.log(res);
})
},
name: "App",
components: {
HelloWorld
},
};
</script><style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>在 vue.config.js 文件中添加如下所示的配置項(xiàng)
module.exports = {
lintOnSave: false,
devServer: {
proxy: "https://apimusic.linweiqin.com/"
}
};如果請(qǐng)求有多個(gè)不同的地址
A: http://s.linweiqin.com/api/s/getHotProducts
B: https://apimusic.linweiqin.com/song/url?id=504835560
module.exports = {
lintOnSave: false,
// devServer: {
// proxy: "https://apimusic.linweiqin.com/"
// }
devServer: {
proxy: {
"/song": {
target: "https://apimusic.linweiqin.com/",
// changeOrigin: true,
},
"/api": {
target: "http://s.linweiqin.com/",
},
},
},
};proxy常用參數(shù)說(shuō)明
module.exports = {
publicPath: "/",
devServer: {
proxy: {
"/api": {
// 代理名稱(chēng) 凡是使用/api開(kāi)頭的地址都是用此代理
target: "http://1.2.3.4:5000/", // 需要代理訪問(wèn)的api地址
changeOrigin: true, // 允許跨域請(qǐng)求
pathRewrite: {
// 重寫(xiě)路徑,替換請(qǐng)求地址中的指定路徑
"^/api": "/", // 將請(qǐng)求地址中的/api替換為空,也就是請(qǐng)求地址中不會(huì)包含/api/
},
},
},
},
};
關(guān)于/api的詳解
‘/api’:是指遇到這個(gè)字符開(kāi)頭的話(huà),在這個(gè)字符前面加上target里面的ip或者域名。
舉例:
①登錄接口:http://1.2.3.4:5000/login
…中間省略了配置過(guò)程…
②npm run serve:Local: http://localhost:8080/
③點(diǎn)擊后發(fā)送的登錄請(qǐng)求:http://localhost:8080/api/login
④/api 的作用就是將/api前的localhost:8080變成target的內(nèi)容http://1.2.3.4:5000/
⑤完整的路徑變成了http://1.2.3.4:5000/api/login
⑥實(shí)際接口當(dāng)中沒(méi)有這個(gè)api,所以pathwrite重寫(xiě)就解決這個(gè)問(wèn)題的。
⑦pathwrite識(shí)別到api開(kāi)頭就會(huì)把/api重寫(xiě)成空,那就是不存在這個(gè)/apil了,完整的路徑又變成:http://1.2.3.4:5000/login

部署因?yàn)?api無(wú)法請(qǐng)求到數(shù)據(jù)
接口名稱(chēng)不用/api,改用實(shí)際接口的第一個(gè)字段,然后取消pathwrite重寫(xiě)
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解決新建一個(gè)vue項(xiàng)目過(guò)程中遇到的問(wèn)題
這篇文章主要介紹了解決新建一個(gè)vue項(xiàng)目過(guò)程中遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-10-10
Vue學(xué)習(xí)筆記進(jìn)階篇之過(guò)渡狀態(tài)詳解
本篇文章主要介紹了Vue學(xué)習(xí)筆記進(jìn)階篇之過(guò)渡狀態(tài)詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-07-07
vue項(xiàng)目實(shí)現(xiàn)會(huì)議預(yù)約功能(包含某天的某個(gè)時(shí)間段和某月的某幾天)
這篇文章主要介紹了vue項(xiàng)目實(shí)現(xiàn)會(huì)議預(yù)約功能(包含某天的某個(gè)時(shí)間段和某月的某幾天),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-02-02
基于Vue+element-ui 的Table二次封裝的實(shí)現(xiàn)
這篇文章主要介紹了基于Vue+element-ui 的Table二次封裝的實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-07-07
vue如何移動(dòng)到指定位置(scrollIntoView)親測(cè)避坑
這篇文章主要介紹了vue如何移動(dòng)到指定位置(scrollIntoView)親測(cè)避坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05
Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼
這篇文章主要介紹了Vue 實(shí)現(xiàn)前端權(quán)限控制的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
element el-table 表格限制多選個(gè)數(shù)功能
這篇文章主要介紹了element el-table 表格限制多選個(gè)數(shù)功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-03-03

