欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue-resource實(shí)現(xiàn)ajax請求和跨域請求示例

 更新時(shí)間:2017年02月23日 15:25:33   作者:李帥醒  
本篇文章主要介紹了Vue-resource實(shí)現(xiàn)ajax請求和跨域請求示例,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

vue-resource是Vue提供的體格http請求插件,如同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ā)送請求:

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ā)送請求后,使用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請求:

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請求:

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的請求API是按照REST風(fēng)格設(shè)計(jì)的,它提供了7種請求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ā)人員的溝通成本。

客戶端請求方法 服務(wù)端處理方法
this.$http.get(...) Getxxx
this.$http.post(...) Postxxx
this.$http.put(...) Putxxx
this.$http.delete(...) Deletexxx

options對象

發(fā)送請求時(shí)的options選項(xiàng)對象包含以下屬性:

參數(shù) 類型 描述
url string 請求的URL
method string 請求的HTTP方法,例如:'GET', 'POST'或其他HTTP方法
body Object, FormDatastring request body
params Object 請求的URL參數(shù)對象
headers Object request header
timeout number 單位為毫秒的請求超時(shí)時(shí)間 (0 表示無超時(shí)時(shí)間)
before function(request) 請求發(fā)送前的處理函數(shù),類似于jQuery的beforeSend函數(shù)
progress function(event) ProgressEvent回調(diào)處理函數(shù)
credientials boolean 表示跨域請求時(shí)是否需要使用憑證
emulateHTTP boolean 發(fā)送PUT, PATCH, DELETE請求時(shí)以HTTP POST的方式發(fā)送,并設(shè)置請求頭的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)格的請求,你可以啟用enulateHTTP現(xiàn)象。啟用該選項(xiàng)后,請求會(huì)以普通的POST方法發(fā)出,并且HTTP頭信息的X-HTTP-Method-Override屬性會(huì)設(shè)置為實(shí)際的HTTP方法。

Vue.http.options.emulateHTTP = true;

emulateJSON的作用

如果Web服務(wù)器無法處理編碼為application/json的請求,你可以啟用emulateJSON選項(xiàng)。啟用該選項(xiàng)后,請求會(huì)以application/x-www-form-urlencoded作為MIME type,就像普通的HTML表單一樣。

Vue.http.options.emulateJSON = true;

response對象

response對象包含以下屬性:

方法 類型 描述
text() string 以string形式返回response body
json() Object 以JSON對象形式返回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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評(píng)論