Vue-resource實(shí)現(xiàn)ajax請(qǐng)求和跨域請(qǐng)求示例
vue-resource是Vue提供的體格http請(qǐng)求插件,如同jQuery里的$.ajax,用來和后端交互數(shù)據(jù)的。
在使用時(shí),首先需要安裝vue-resource插件
1.在項(xiàng)目跟目錄上安裝:
npm install vue-resource
2.引入resource插件
import VueResource from 'vue-resource'; Vue.use(VueResource)
3.發(fā)送請(qǐng)求:
this.$http.get("http://www.vrserver.applinzi.com/aixianfeng/apihome.php").then(function(res){
console.log(res)
})
ES6寫法:
this.$http.get('url', [options]).then((res) => {
// 處理成功的結(jié)果}, (res) => { // 處理失敗的結(jié)果});
在發(fā)送請(qǐng)求后,使用then方法來處理響應(yīng)結(jié)果,then方法有兩個(gè)參數(shù),第一個(gè)參數(shù)是響應(yīng)成功時(shí)的回調(diào)函數(shù),第二個(gè)參數(shù)是響應(yīng)失敗時(shí)的回調(diào)函數(shù)。
then方法的回調(diào)函數(shù)也有兩種寫法,第一種是傳統(tǒng)的函數(shù)寫法,第二種是更為簡潔的ES 6的Lambda寫法:
POST請(qǐng)求:
this.$http.post("http://www.vrserver.applinzi.com/aixianfeng/apihome.php",{name:"abc"},{emulateJSON:true}).then(
function (res) {
// 處理成功的結(jié)果
alert(res.body);
},function (res) {
// 處理失敗的結(jié)果
}
);
JSONP請(qǐng)求:
new Vue({ ready() {
this.$http.jsonp('/url', {name:"abc"}) .then(function (res){
console.log(res)
}, function (res) {
console.log(res)
});
}
})
吐槽一下,現(xiàn)在應(yīng)該沒有用到JSON的了吧,有的話真呵呵呵了。
支持的HTTP方法
vue-resource的請(qǐng)求API是按照REST風(fēng)格設(shè)計(jì)的,它提供了7種請(qǐng)求API:
- get(url, [options])
- head(url, [options])
- delete(url, [options])
- jsonp(url, [options])
- post(url, [body], [options])
- put(url, [body], [options])
- patch(url, [body], [options])
除了jsonp以外,另外6種的API名稱是標(biāo)準(zhǔn)的HTTP方法。當(dāng)服務(wù)端使用REST API時(shí),客戶端的編碼風(fēng)格和服務(wù)端的編碼風(fēng)格近乎一致,這可以減少前端和后端開發(fā)人員的溝通成本。
| 客戶端請(qǐng)求方法 | 服務(wù)端處理方法 |
|---|---|
| this.$http.get(...) | Getxxx |
| this.$http.post(...) | Postxxx |
| this.$http.put(...) | Putxxx |
| this.$http.delete(...) | Deletexxx |
options對(duì)象
發(fā)送請(qǐng)求時(shí)的options選項(xiàng)對(duì)象包含以下屬性:
| 參數(shù) | 類型 | 描述 |
|---|---|---|
| url | string | 請(qǐng)求的URL |
| method | string | 請(qǐng)求的HTTP方法,例如:'GET', 'POST'或其他HTTP方法 |
| body | Object, FormDatastring | request body |
| params | Object | 請(qǐng)求的URL參數(shù)對(duì)象 |
| headers | Object | request header |
| timeout | number | 單位為毫秒的請(qǐng)求超時(shí)時(shí)間 (0 表示無超時(shí)時(shí)間) |
| before | function(request) | 請(qǐng)求發(fā)送前的處理函數(shù),類似于jQuery的beforeSend函數(shù) |
| progress | function(event) | ProgressEvent回調(diào)處理函數(shù) |
| credientials | boolean | 表示跨域請(qǐng)求時(shí)是否需要使用憑證 |
| emulateHTTP | boolean | 發(fā)送PUT, PATCH, DELETE請(qǐng)求時(shí)以HTTP POST的方式發(fā)送,并設(shè)置請(qǐng)求頭的X-HTTP-Method-Override |
| emulateJSON | boolean | 將request body以application/x-www-form-urlencoded content type發(fā)送 |
emulateHTTP的作用
如果Web服務(wù)器無法處理PUT, PATCH和DELETE這種REST風(fēng)格的請(qǐng)求,你可以啟用enulateHTTP現(xiàn)象。啟用該選項(xiàng)后,請(qǐng)求會(huì)以普通的POST方法發(fā)出,并且HTTP頭信息的X-HTTP-Method-Override屬性會(huì)設(shè)置為實(shí)際的HTTP方法。
Vue.http.options.emulateHTTP = true;
emulateJSON的作用
如果Web服務(wù)器無法處理編碼為application/json的請(qǐng)求,你可以啟用emulateJSON選項(xiàng)。啟用該選項(xiàng)后,請(qǐng)求會(huì)以application/x-www-form-urlencoded作為MIME type,就像普通的HTML表單一樣。
Vue.http.options.emulateJSON = true;
response對(duì)象
response對(duì)象包含以下屬性:
| 方法 | 類型 | 描述 |
|---|---|---|
| text() | string | 以string形式返回response body |
| json() | Object | 以JSON對(duì)象形式返回response body |
| blob() | Blob | 以二進(jìn)制形式返回response body |
| 屬性 | 類型 | 描述 |
| ok | boolean | 響應(yīng)的HTTP狀態(tài)碼在200~299之間時(shí),該屬性為true |
| status | number | 響應(yīng)的HTTP狀態(tài)碼 |
| statusText | string | 響應(yīng)的狀態(tài)文本 |
| headers | Object | 響應(yīng)頭 |
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue項(xiàng)目如何實(shí)現(xiàn)切換主題色思路
這篇文章主要介紹了Vue項(xiàng)目如何實(shí)現(xiàn)切換主題色思路,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-01-01
Vue實(shí)現(xiàn)Excel預(yù)覽功能使用場(chǎng)景示例詳解
這篇文章主要為大家介紹了Vue實(shí)現(xiàn)Excel預(yù)覽功能使用場(chǎng)景示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
vue實(shí)現(xiàn)element表格里表頭信息提示功能(推薦)
小編最近接了這樣一個(gè)需求,需要在element表格操作一欄添加提示功能,下面小編給大家?guī)砹嘶趘ue實(shí)現(xiàn)element表格里表頭信息提示功能,需要的朋友參考下吧2019-11-11
Vue3組合式函數(shù)Composable實(shí)戰(zhàn)ref和unref使用
這篇文章主要為大家介紹了Vue3組合式函數(shù)Composable實(shí)戰(zhàn)ref和unref使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-06-06
vue中的.capture和.self區(qū)分及初步理解
這篇文章主要介紹了vue中的.capture和.self區(qū)分及初步理解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04

