最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Axios代理配置及封裝響應攔截處理方式

 更新時間:2022年04月07日 10:24:56   作者:何其濤  
這篇文章主要介紹了Axios代理配置及封裝響應攔截處理方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教

Axios代理配置及響應攔截處理

Axios是vue官方推薦的異步處理方案,所以在幾個vue的項目里,都用到了,所以這里寫一下Axios的代理配置和響應攔截處理

代理配置

代理主要是為了解決跨域問題,但是現(xiàn)在常規(guī)解決跨域的方式,就是讓后端配置響應頭,使用cors方式跨域前端基本不需要任何處理。

但是有時候后端比較懶,就需要前端通過代理請求完成跨域,其實就是相當于在本地開了一個服務器,通過服務器進行向另一個服務器的代理請求。

但是這樣又會產生一定問題,就是再部署到服務器上時,前端項目也必須設置代理,或者直接和后端項目部署同源環(huán)境

下面是代理請求的配置:

//config/index.js 文件里
module.exports = {
? ? ?dev{
? ? ? ? proxyTable: {
? ? ? ? ? '/': { //將開頭為 ‘/'的接口替換
? ? ? ? ? ? target: 'http://www.hahaha.com/', ?//導向這個地址
? ? ? ? ? ? changeOrigin: true,
? ? ? ? ? ? ws:true,
? ? ? ? ? ? pathRewrite: {
? ? ? ? ? ? ? '^/': '' ? ?//將開頭的斜杠去掉
? ? ? ? ? ? }
? ? ? ? ? },
? ? ? ? ? '/ws/**': { ? //因為項目中用到了websocket 所以這里還配置websocket的代理
? ? ? ? ? ? ? target: 'ws://www.hahaha.com',
? ? ? ? ? ? ? ws: true,
? ? ? ? ? ? ? secure: false,
? ? ? ? ? ? ? logLevel: 'debug',
? ? ? ? ? }
? ? ? }
? ? ? ...
? ? }
? ?host: '0.0.0.0', //這里順便一提,把host改成'0.0.0.0‘后可以讓局域網內的電腦直接訪問項目,默認是localhost
? ? ...
}

響應內容攔截處理

因為我們的axios請求響應會將網絡請求信息的狀態(tài)碼返回,而通常我們實際運用中不是很需要這樣的內容,為了方便我們可以進行統(tǒng)一處理,最后只返回真正的實際內容。

同時我們希望雖然網絡請求成功,但是如果請求的內容失敗的話,也會流轉到catch步驟,也就是捕獲錯誤

代碼如下

const http = axios.create({
? baseURL: 'api/',
? timeout: 20000,
}); ? //創(chuàng)建axios對象
//對axios對象響應的攔截處理
http.interceptors.response.use((response) => {
//進入這里代表請求成功,網絡請求狀態(tài)碼是200,但是我們要對請求的內容是否成功進行判斷
? if (response.data.ErrorCode !== 0) { ? //因為我們項目里設定0代表請求成功,所以非零的我們都會直接reject
? ? return Promise.reject(response.data);
? } ??
? return Promise.resolve(response.data); //ErrorCode為0的直接返回response.data將網絡的狀態(tài)碼直接過濾掉
}, (error) => {
//進入這里都網絡狀態(tài)碼非200的,可能是因為接口錯誤,也可能是沒有token等原因
? if(error.constructor.prototype.name == "Error") { ?//這里判斷返回的是否是錯誤對象,如果是的說明是網絡請求錯誤
? ? Message({ showClose: true,
? ? ? message: '網絡鏈接問題或登陸失效!',
? ? ? type: 'error'})
? ? return new Promise(() => {}) //這里我們可以進行鏈式異步處理
? }
? return error.data;//其他請求,說明是因為請求內容錯誤了,直接返回錯誤內容
});
//處理前返回內容
{
? ? status: 200
? ? statusText: "OK",
? ? data{
? ? ?? ?ErrorCode: 0,
? ? ? ? token:'xxxx',
? ? ? ? name:'xxxx'
? ? }
}
//處理后返回內容
{
? ? ErrorCode: 0,
? ? token:'xxxx',
? ? name:'xxxx'
}

Axios的proxy代理配置解析

proxy實際上是一種前端開發(fā)中方便開發(fā)用的東西,它在本地可以跨域訪問其他的網站,但是當頁面打包之后,proxy就會失效

我是在vue.config.js中設置proxy的,代碼如下

? ? proxy: {
? ? ? //匹配到的路徑
? ? ? "/api": {
? ? ? ? target: "XXXXXXXXX", //目標主機地址
? ? ? ? changeOrigin: true,//是否啟動代理
? ? ? ? pathRewrite: {?? ?//重寫路徑
? ? ? ? ? "^/api": ''?? ?//如果遇到前綴為'/api'的url,將它重寫為''
? ? ? ? }
? ? ? }
? ? }

舉個例子: 

proxy的target設置成http://www.web-jshtml.cn/aaa

如果你想訪問http://192.168.1.114:8080/api/,這時候,你碰到了/api,你需要將/api前邊的域名轉換為target的地址,即

將http://192.168.1.114:8080轉換為http://www.web-jshtml.cn/aaa

即是

http://www.web-jshtml.cn/aaa/api/這個地址,但是因為proxy的pathRewrite里需要將'/api'轉換為空字符串,所以最終的訪問地址是

http://www.web-jshtml.cn/aaa

直接上文檔,文檔里有詳細資料

在這里插入圖片描述

在這里插入圖片描述

以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關文章

  • vue轉electron項目及解決使用fs報錯:Module?not?found:?Error:?Can't?resolve?'fs'?in

    vue轉electron項目及解決使用fs報錯:Module?not?found:?Error:?Can&apo

    這篇文章主要給大家介紹了關于vue轉electron項目及解決使用fs報錯:Module?not?found:?Error:?Can‘t?resolve?‘fs‘?in的相關資料,文中通過圖文以及實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • Vue3 之 Vue 事件處理指南

    Vue3 之 Vue 事件處理指南

    Vue事件處理是每個Vue項目的必要方面。 它用于捕獲用戶輸入,共享數據以及許多其他創(chuàng)造性方式。在本文中,會介紹基礎知識,并提供一些用于處理事件的代碼示例。需要的小伙伴可以參考下面文章的具體內容
    2021-09-09
  • vue項目實現(xiàn)會議預約功能(包含某天的某個時間段和某月的某幾天)

    vue項目實現(xiàn)會議預約功能(包含某天的某個時間段和某月的某幾天)

    這篇文章主要介紹了vue項目實現(xiàn)會議預約功能(包含某天的某個時間段和某月的某幾天),本文結合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-02-02
  • vue+relation-graph繪制關系圖實用組件操作方法

    vue+relation-graph繪制關系圖實用組件操作方法

    這篇文章主要介紹了vue+relation-graph繪制關系圖實用組件操作方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-07-07
  • vue路由--網站導航功能詳解

    vue路由--網站導航功能詳解

    這篇文章主要介紹了vue路由--網站導航功能詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-03-03
  • vue實現(xiàn)商品加減計算總價的實例代碼

    vue實現(xiàn)商品加減計算總價的實例代碼

    這篇文章主要介紹了vue實現(xiàn)商品加減計算總價的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下
    2018-08-08
  • 使用Vue3和Vite實現(xiàn)對低版本瀏覽器的兼容

    使用Vue3和Vite實現(xiàn)對低版本瀏覽器的兼容

    在使用Vite和Vue3構建的JavaScript項目中,確保對低版本瀏覽器的兼容性是一個重要的考慮因素,以下是一些具體的解決方案和步驟,可以幫助你實現(xiàn)這一目標,需要的朋友可以參考下
    2024-11-11
  • Nuxt.js的路由跳轉操作(頁面跳轉nuxt-link)

    Nuxt.js的路由跳轉操作(頁面跳轉nuxt-link)

    這篇文章主要介紹了Nuxt.js的路由跳轉操作(頁面跳轉nuxt-link),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-11-11
  • element中async-validator異步請求驗證使用

    element中async-validator異步請求驗證使用

    本文主要介紹了element中async-validator異步請求驗證使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Vue路由切換頁面不更新問題解決方案

    Vue路由切換頁面不更新問題解決方案

    這篇文章主要介紹了Vue路由切換頁面不更新問題解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07

最新評論

滁州市| 天峨县| 伊春市| 蓬安县| 威宁| 翁源县| 延庆县| 扎兰屯市| 个旧市| 岱山县| 东源县| 秀山| 永和县| 彩票| 蛟河市| 碌曲县| 龙胜| 上思县| 大英县| 盐边县| 马尔康县| 黎城县| 贵州省| 井陉县| 芜湖县| 竹山县| 富源县| 曲周县| 陆川县| 昭通市| 西和县| 屯留县| 信宜市| 张家口市| 宣化县| 彭山县| 屯门区| 会昌县| 江阴市| 大荔县| 简阳市|