在web開發中,使用ajax技術可以實現網頁異步更新,避免了整個頁面的刷新。在使用Vue框架進行開發時,經常需要進行ajax請求,以獲取或提交數據。下面我們將詳細介紹Vue中的ajax請求。
1. Vue-resource
Vue官方提供了一個插件叫做vue-resource,封裝了ajax請求的細節,使用起來非常方便。我們可以使用npm來安裝: npm install vue-resource --save 接著在Vue實例中使用: import VueResource from 'vue-resource' Vue.use(VueResource)
2. 發送get請求
Vue中發送get請求的方式非常簡單,只需要在Vue實例中使用Vue.http.get方法即可,如下所示: Vue.http.get('/api/user/123').then((response) =>{ console.log(response.body) }) 其中,/api/user/123是我們向服務器發送請求的URL,response.body則是返回的結果。
3. 發送post請求
Vue中發送post請求同樣非常簡單,使用Vue.http.post方法即可,如下所示: Vue.http.post('/api/user', {name: 'Tom', age: 18}).then((response) =>{ console.log(response.body) }) 其中,/api/user是我們向服務器發送請求的URL,第二個參數{name: 'Tom', age: 18}是我們要提交的數據,response.body則是返回的結果。
4. 攔截器
攔截器是vue-resource提供的一個非常有用的功能。我們可以在發送請求前、收到響應后對請求和響應進行一些處理。比如,我們可以在發送請求前自動添加一些頭信息,來實現身份認證,或者對響應進行一些統一的處理,比如處理錯誤信息。使用攔截器非常簡單,如下所示: Vue.http.interceptors.push((request, next) =>{ request.credentials = true // 設置發送請求時帶上cookie信息 next((response) =>{ // 對響應進行統一處理 if (response.status === 401) { // 處理未授權的情況 } }) })
5. 取消請求
有時候我們發送了一個請求,但是在收到響應之前又想取消這個請求,這時可以使用Vue.http.cancel方法來取消請求。我們需要在發送請求時指定一個唯一的標識符,然后在需要取消請求時調用Vue.http.cancel方法并傳入這個標識符即可。如下所示: let cancel = Vue.http.get('/api/user/123', {cancelToken: new Vue.http.CancelToken()}) // 取消請求 cancel()
總結
Vue中的ajax請求非常方便,我們可以使用vue-resource插件來封裝請求的細節,而發送get、post請求也非常簡單。如果我們需要在發送請求前進行一些操作,或者在響應收到后進行一些統一的處理,可以使用攔截器來實現。而如果我們需要取消請求,也可以很容易地通過傳入標識符來取消請求。
上一篇c 根據json創建控件
下一篇c 樹級json