與服務器端通訊

axios 安裝

$ npm install axios --save

在項目目錄創(chuàng)建 lib 目錄

創(chuàng)建 http.js 來設置axios

import axios from 'axios'
import router from '@/router'

const DEV_BASE_URL = 'http://localhost:8000/api'
const PRO_BASE_URL = '/api'

axios.defaults.baseURL = process.env.NODE_ENV === 'production' ? PRO_BASE_URL : DEV_BASE_URL
axios.defaults.baseURL = '/api'

axios.defaults.timeout = 5000

// http request 攔截器
axios.interceptors.request.use(
  config => {
    // 判斷是否存在token成翩,如果存在的話忱反,則每個http header都加上token
    let token = localStorage.getItem('token')
    if (token) {
      config.headers.Authorization = `token ${token}`
    } else {
      router.replace({
        path: 'login',
        query: {redirect: router.currentRoute.fullPath}
      })
    }
    return config
  },
  err => {
    return Promise.reject(err)
  })

// http response 攔截器
axios.interceptors.response.use(
  response => {
    return response
  },
  error => {
    if (error.response) {
      switch (error.response.status) {
        case 401:
          // 返回 401 清除token信息并跳轉到登錄頁面
          // store.commit(types.LOGOUT);
          router.replace({
            path: 'login',
            query: {redirect: router.currentRoute.fullPath}
          })
      }
    }
    // 返回接口返回的錯誤信息
    return Promise.reject(error.response.data)
  })

export default axios

我們來解釋一下這段代碼的意思

axios.defaults.baseURL 基礎url,我們可以根據(jù)生產(chǎn)環(huán)境和開發(fā)環(huán)境來指定訪問不同的URL闯两,我們的應用最終會部署在同一域名下,這里我去掉了這個邏輯氮兵,統(tǒng)一采用 /api前綴荠耽。

axios.defaults.timeout 設置了請求超時時間5秒

下面是重點眶根,分別設置請求(requet)和響應(response)的攔截器腥放,增加一些全局設置泛啸。

我們在同一域名下部署應用,用cookie session的認證方式也可以控制訪問秃症,但通常為了考慮兼容app或小程序或者其它客戶端的數(shù)據(jù)訪問候址,我們采用token認證的方式,在用戶登陸完成驗證后會返回一個token用于后邊的會話种柑,再之后的請求就要加上這個token岗仑,我們把token放在http request的header里。

request的邏輯聚请,從localStorage取token荠雕,如果有就加到header里,如果沒有就跳轉到登陸頁

response的邏輯驶赏,返回正常的結果直接return出去舞虱,出錯的情況,如果是401母市,則清理本地存儲并跳轉登陸頁。

配置api代理
api代理可以方便的解決跨域問題损趋,與服務端通訊患久,比如下面的配置, 我們的項目開發(fā)環(huán)境默認監(jiān)聽的是8080端口浑槽,在訪問數(shù)據(jù)時蒋失,將8080端口的url訪問重定向到另一個8000端口的服務,傳遞路徑和參數(shù)桐玻,并返回結果篙挽。

修改config/index.js 配置 proxyTable

    proxyTable: {
      '/api': {
        target: 'http://localhost:8000/'
      }
    },

將對項目 /api 路徑下的訪問代理到 8000 端口的服務上, 再后邊的章節(jié)里會有具體的操作,暫時先配置上镊靴。

rpc和restful api的選擇
插一段RPC和restful api選擇铣卡,具體的理念對比網(wǎng)上去科普吧,

我的習慣是如果是標準的數(shù)據(jù)對象操作--增刪改查就用restful api偏竟,其它的rpc

不要為了接口而接口煮落,技術永遠是解決效率和效益的問題,實際點用最適合的踊谋。

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末蝉仇,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌轿衔,老刑警劉巖沉迹,帶你破解...
    沈念sama閱讀 210,835評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異害驹,居然都是意外死亡鞭呕,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評論 2 383
  • 文/潘曉璐 我一進店門裙秋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來琅拌,“玉大人,你說我怎么就攤上這事摘刑〗Γ” “怎么了?”我有些...
    開封第一講書人閱讀 156,481評論 0 345
  • 文/不壞的土叔 我叫張陵枷恕,是天一觀的道長党晋。 經(jīng)常有香客問我,道長徐块,這世上最難降的妖魔是什么未玻? 我笑而不...
    開封第一講書人閱讀 56,303評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮胡控,結果婚禮上扳剿,老公的妹妹穿的比我還像新娘。我一直安慰自己昼激,他們只是感情好庇绽,可當我...
    茶點故事閱讀 65,375評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著橙困,像睡著了一般瞧掺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凡傅,一...
    開封第一講書人閱讀 49,729評論 1 289
  • 那天辟狈,我揣著相機與錄音,去河邊找鬼夏跷。 笑死哼转,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的槽华。 我是一名探鬼主播释簿,決...
    沈念sama閱讀 38,877評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼硼莽!你這毒婦竟也來了庶溶?” 一聲冷哼從身側響起煮纵,我...
    開封第一講書人閱讀 37,633評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎偏螺,沒想到半個月后行疏,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡套像,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,443評論 2 326
  • 正文 我和宋清朗相戀三年酿联,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片夺巩。...
    茶點故事閱讀 38,563評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡贞让,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出柳譬,到底是詐尸還是另有隱情喳张,我是刑警寧澤,帶...
    沈念sama閱讀 34,251評論 4 328
  • 正文 年R本政府宣布美澳,位于F島的核電站销部,受9級特大地震影響,放射性物質發(fā)生泄漏制跟。R本人自食惡果不足惜舅桩,卻給世界環(huán)境...
    茶點故事閱讀 39,827評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雨膨。 院中可真熱鬧擂涛,春花似錦、人聲如沸聊记。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽甥雕。三九已至,卻和暖如春胀茵,著一層夾襖步出監(jiān)牢的瞬間社露,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評論 1 264
  • 我被黑心中介騙來泰國打工琼娘, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留峭弟,地道東北人。 一個月前我還...
    沈念sama閱讀 46,240評論 2 360
  • 正文 我出身青樓脱拼,卻偏偏與公主長得像瞒瘸,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子熄浓,可洞房花燭夜當晚...
    茶點故事閱讀 43,435評論 2 348

推薦閱讀更多精彩內(nèi)容