Vue-resource實(shí)現(xiàn)ajax請(qǐng)求和跨域請(qǐng)求示例
vue-resource是Vue提供的體格http請(qǐng)求插件,如同jQuery里的$.ajax,用來(lái)和后端交互數(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方法來(lái)處理響應(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ù)寫法,第二種是更為簡(jiǎn)潔的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 表示無(wú)超時(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ù)器無(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ù)器無(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)頭 |
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能
這篇文章主要介紹了Vue快速實(shí)現(xiàn)通用表單驗(yàn)證功能,本文通過(guò)一個(gè)小例子給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-12-12Vue實(shí)現(xiàn)移動(dòng)端頁(yè)面切換效果【推薦】
這篇文章主要介紹了Vue實(shí)現(xiàn)移動(dòng)端頁(yè)面切換效果,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-11-11elementui如何解決el-table重復(fù)寫loading問題
這篇文章主要介紹了elementui如何解決el-table重復(fù)寫loading問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-08-08vue動(dòng)畫效果實(shí)現(xiàn)方法示例
這篇文章主要介紹了vue動(dòng)畫效果實(shí)現(xiàn)方法,結(jié)合完整實(shí)例形式分析了vue.js+animate.css實(shí)現(xiàn)的動(dòng)畫切換效果相關(guān)操作技巧,需要的朋友可以參考下2019-03-03vue3中安裝并使用CSS預(yù)處理器Sass的方法詳解
Sass是一種CSS預(yù)處理器,它擴(kuò)展了CSS的功能,提供了更高級(jí)的語(yǔ)法和特性,例如變量、嵌套、混合、繼承和顏色功能等,這些特性可以幫助開發(fā)者更高效地管理和維護(hù)樣式表,本文介紹vue3中安裝并使用CSS預(yù)處理器Sass的方法,感興趣的朋友一起看看吧2024-01-01Vue2實(shí)時(shí)監(jiān)聽表單變化的示例講解
今天小編就為大家分享一篇Vue2實(shí)時(shí)監(jiān)聽表單變化的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-08-08Ant Design Upload 文件上傳功能的實(shí)現(xiàn)
這篇文章主要介紹了Ant Design Upload 文件上傳功能的實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-04-04vue實(shí)現(xiàn)todolist功能、todolist組件拆分及todolist的刪除功能
這篇文章主要介紹了vue實(shí)現(xiàn)todolist功能、todolist組件拆分及todolist的刪除功能,需要的朋友可以參考下2019-04-04