在開發(fā)中,經(jīng)常會(huì)使用Vue進(jìn)行前端的開發(fā)工作。Vue有很多實(shí)用的功能,其中請求時(shí)傳cookie就是其中一個(gè)。Vue中請求時(shí)傳cookie需要使用Vue-resource這個(gè)插件,下面就來詳細(xì)講解一下Vue中請求時(shí)傳cookie的方法。
Vue-resource是一個(gè)基于Vue.js的HTTP請求插件,主要用于發(fā)送HTTP請求和處理響應(yīng)結(jié)果。我們首先需要使用Vue-resource插件,在Vue項(xiàng)目中使用它。
npm install vue-resource –save-dev
在使用Vue-resource進(jìn)行HTTP請求時(shí),如果請求中需要傳遞cookie,我們需要通過Vue-resource的攔截器來進(jìn)行設(shè)置。
首先,在main.js中引入Vue-resource插件。
import VueResource from 'vue-resource'; Vue.use(VueResource);
接著,在Vue的實(shí)例中通過攔截器設(shè)置每次請求都攜帶cookie。
Vue.http.interceptors.push(function(request, next) { //設(shè)置cookie request.credentials = true; next(); });
上面的代碼中,我們獲取Vue.http對象,調(diào)用interceptors.push()方法,設(shè)置每次請求都攜帶cookie。我們可以使用request.credentials=true來設(shè)置這個(gè)參數(shù)。
接下來,我們就可以在Vue實(shí)例中發(fā)起包含cookie的請求了。
Vue.http.get(url) .then(response =>{ //請求成功后做的操作 }, error =>{ //請求失敗后做的操作 });
在請求時(shí),我們只需要傳入url即可。如果請求成功,我們可以在then()中獲取響應(yīng)的結(jié)果,如果請求失敗,我們可以在error()中處理錯(cuò)誤。
值得注意的是,如果我們想在請求中攜帶自定義的cookie,也可以在攔截器中設(shè)置。
Vue.http.interceptors.push((request, next) =>{ let cookie = 'name=value; Path=/;'; request.headers.set('Cookie', cookie ); next(); });
在上述代碼中,我們通過request.headers.set()方法來設(shè)置自定義的cookie。我們可以如上述例子中設(shè)置name=value的Cookie。
到此為止,我們就詳細(xì)講述了在Vue中請求時(shí)傳cookie的方法。當(dāng)我們需要在請求中傳cookie時(shí),只需要在Vue-resource的請求攔截器中設(shè)置cookie并發(fā)起請求即可。