前端調用api接口方法總結

我用得最多的大概就是jquery中的ajax了吧,就從ajax總結起走:html

1、ajax:vue

參數解釋:(主要就用到url、type、data、dataType、success、error等,其餘的看需求而定)node

$.ajax({jquery

  url:"   ",                  //請求的地址,類型爲stringios

 

  type:"   ",               //請求方式,類型爲string,兩種「get」或者「post」,默認爲「get」web

 

  timeout:                //要求爲Number類型的參數,設置請求超時時間(毫秒)。此設置將覆蓋$.ajaxSetup()方法的全局設置。ajax

 

  async:                   //要求爲Boolean類型的參數,默認設置爲true,全部請求均爲異步請求。若是須要發送同步請求,請將此選項設置爲false。注意,同步請求將鎖住瀏覽器,用戶其餘操做必須等待請求完成才能夠執行。json

 

  cache:                  //要求爲Boolean類型的參數,默認爲true(當dataType爲script時,默認爲false),設置爲false將不會從瀏覽器緩存中加載請求信息。axios

 

  data:                    //要求爲Object或String類型的參數,發送到服務器的數據。若是已經不是字符串,將自動轉換爲字符串格式。get請求中將附加在url後瀏覽器

 

  dataType:            //要求爲String類型的參數,預期服務器返回的數據類型。若是不指定,JQuery將自動根據http包mime信息返回responseXML或responseText  做爲回調函數參數傳遞。可用的類型以下:
                                      xml:返回XML文檔,可用JQuery處理。
                                      html:返回純文本HTML信息;包含的script標籤會在插入DOM時執行。
                                      script:返回純文本JavaScript代碼。不會自動緩存結果。除非設置了cache參數。注意在遠程請求時(不在同一個域下),全部post請求都將轉爲get請求。
                                      json:返回JSON數據。
                                      jsonp:JSONP格式。使用SONP形式調用函數時,例如myurl?callback=?,JQuery將自動替換後一個「?」爲正確的函數名,以執行回調函數。
                                      text:返回純文本字符串。

 

  beforeSend:      //要求爲Function類型的參數,發送請求前能夠修改XMLHttpRequest對象的函數,例如添加自定義HTTP頭。在beforeSend中若是返回false能夠取消本次ajax請求。

 

  complete:         //要求爲Function類型的參數,請求完成後調用的回調函數(請求成功或失敗時均調用)。

 

  success:            // 要求爲Function類型的參數,請求成功後調用的回調函數,有兩個參數。

                                  (1)由服務器返回,並根據dataType參數進行處理後的數據。
                                  (2)描述狀態的字符串。

 

  error:                //要求爲Function類型的參數,請求失敗時被調用的函數。該函數有3個參數,即XMLHttpRequest對象、錯誤信息、捕獲的錯誤對象(可選)

 

      contentType:    //要求爲String類型的參數,當發送信息至服務器時,內容編碼類型默認爲"application/x-www-form-urlencoded"。該默認值適合大多數應用場合。

  .......還有不少,只是基本用不到

})

 

2、用vue時,常常用到的。vue-resource和axios

1.vue-resource(基本再也不使用)

優勢:體積小、支持主流的瀏覽器、支持Promise API和URI Templates、支持攔截器。

用法:全局引入後,則在實例中使用。

經常使用的:

this.$http.get().then();

this.$http.post().then();

this.$http.jsonp().then();

 

2.axios(經常使用)

vue2.0以後,就再也不對vue-resource更新,而是推薦使用axios。基於 Promise 的 HTTP 請求客戶端,可同時在瀏覽器和 Node.js 中使用。

特色:

(1)在瀏覽器中發送 XMLHttpRequests 請求

(2)在 node.js 中發送 http請求

(3)支持 Promise API

(4)攔截請求和響應

(5)轉換請求和響應數據

(6)取消請求

(7)自動轉換爲JSON數據

(8)客戶端支持保護安全免受 CSRF/XSRF 攻擊

使用:

下載並引入後,在實例中使用:

GET方式:

axios.get().then().catch()

注:get方式傳參數能夠直接跟在url後面,也能夠經過param對象傳

 

POST方式:

axios.post().then().catch()

注:post方式傳參必須用對象傳

 

執行多個併發請求:

function A(){

  return axios.get()

}

function B(){

  return axios.post()

}

axios.all([A,B]).then(axios.spread(()=>{}))

還有一些詳細配置:https://www.cnblogs.com/peachmeimei/p/8916098.html

與axios一塊兒用的qs,用qs庫對數據進行編碼,有單獨筆記。

 

3、websocket

vue中使用的小demo:

export default{
data(){
     return {
          webSocket:null
      }
},
created(){
     //頁面剛進入時開啓長鏈接
      this.initWebSocket();
},
destroyed(){
     //頁面銷燬時關閉長鏈接
     this.webSocketClose();
},
methods: {
    initWebSocket(){            //初始化websocket
         const url='ws://121.40.165.18:8800';
         this.webSocket=new WebSocket(url);
         this.webSocket.onopen=this.socketOpen;
         this.webSocket.onerror=this.socketError;
         this.webSocket.onmessage=this.socketMessage;
         this.webSocket.onclose=this.webSocketClose;
    },
    socketOpen(){
           console.log('socket open');
    },
    socketError(e){
          console.log('socket error');
   },
    socketMessage(e){
         /* const redata = JSON.parse(e.data);*/
        //獲取數據而且處理數據的地方
        console.log(e);
   },
     websocketsend(agentData){//數據發送
         this.websock.send(agentData);
   },
    webSocketClose(e){
         console.log("connection closed");
    }
  }

}

相關文章
相關標籤/搜索