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

轉(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 請求庫 */
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/"
}
};如果請求有多個(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ù)說明
module.exports = {
publicPath: "/",
devServer: {
proxy: {
"/api": {
// 代理名稱 凡是使用/api開頭的地址都是用此代理
target: "http://1.2.3.4:5000/", // 需要代理訪問的api地址
changeOrigin: true, // 允許跨域請求
pathRewrite: {
// 重寫路徑,替換請求地址中的指定路徑
"^/api": "/", // 將請求地址中的/api替換為空,也就是請求地址中不會(huì)包含/api/
},
},
},
},
};
關(guān)于/api的詳解
‘/api’:是指遇到這個(gè)字符開頭的話,在這個(gè)字符前面加上target里面的ip或者域名。
舉例:
①登錄接口:http://1.2.3.4:5000/login
…中間省略了配置過程…
②npm run serve:Local: http://localhost:8080/
③點(diǎn)擊后發(fā)送的登錄請求: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)中沒有這個(gè)api,所以pathwrite重寫就解決這個(gè)問題的。
⑦pathwrite識(shí)別到api開頭就會(huì)把/api重寫成空,那就是不存在這個(gè)/apil了,完整的路徑又變成:http://1.2.3.4:5000/login

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

