1. 程式人生 > 程式設計 >Vue 請求傳公共引數的操作

Vue 請求傳公共引數的操作

我就廢話不多說了,大家還是直接看程式碼吧~

// An highlighted block
//http request攔截器
axios.interceptors.request.use(
	config =>{
  const token = window.sessionStorage.getItem('Tk_token')
  const user_id=window.sessionStorage.getItem('Tk_user_id')

 // config.data = JSON.stringify(config.data);
 // config.headers = {
 //  'Content-Type':'application/x-www-form-urlencoded'
 // }
  if(token){
   config.params = {'token':token,'user_id':user_id}
  }
  console.log(config);
		return config;
	},err =>{
		return Promise.reject(err);
	}
)

補充知識:Vue聯合axios傳送後臺post請求時的引數問題

開始用的是vue-resource,後來發現這個已經很久沒有更新了,作者已經停止更新了,而且就連作者也推薦用axios,那麼我就用axios吧,改成axios之後,就出現了一個問題:引數問題。

怎麼個引數問題呢?用vue-response來發送post請求的時候,傳入的引數到後臺是一個一個分開的,比如傳了引數

{
  username:'name1',password:'pwd1'
}

就是很簡單的使用者名稱和密碼,vue-resource傳到後臺之後,後臺的介面方法引數是兩個,一個是username,一個是password,都可以分別取到;但是axios不同,axios到後臺之後,是一個map結構的物件,需要用@RequestBody Map map這種方式來獲取,然後從map中一個一個取出來,這樣也可以。但是有沒有辦法讓axios傳給後臺的引數也是一個一個的呢?當然有。

第一個方法就是URLSearchParams,用這個新增好引數,到後臺就是一個一個的,但是這個IE不支援。

還有一個辦法,就是qs,qs的話有兩種引入方式,一種就是用npm安裝好後,直接import,然後就可以用了;另一種就是在頁面直接引入qs.js,就是<script src='js/qs.js'></script>這種方式,然後

注意了!

這裡要注意了!

如果是import方式引入的,我們就用qs.stringify呼叫就好了,但是!!!

注意了!

如果是js檔案引入的方式,用的Qs,不是qs,Q是大寫的Q,也就是Qs.stringify。

然後就可以了!

以上這篇Vue 請求傳公共引數的操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。