1. 程式人生 > >請求後臺接口的方式有什麽?有什麽區別

請求後臺接口的方式有什麽?有什麽區別

quest 原始的 。。 除了 進行 sta 客戶 設計 做的

  昨天被頭條的面試官面完之後虐了一地,倒是不難,問一堆這個和那個有啥不同,我心裏想著難道有可比性麽,這種問題怎麽感覺就像有時候問你人都有什麽人?有啥不同一樣。。。只能吐槽但是也無能為力,就怪自己學藝不精吧。

  當時可能是面試官太帥了,所以太緊張了,我竟然腦子裏面想不起來原生是怎麽寫的了,直接說把原生的忘了,xmlhttpRequest在我的腦海裏竟然一點映象也沒了,面之前還手寫的代碼。。。

請求接口除了原生ajax,$.ajax,fetch,axios,vue框架的話自己也封裝了一個vuereaouce方法。先看看這幾個請求接口的寫法:

原生的請求方法:

var xhr = new xmlHttpRequest();

var httprequest

xhr.onreadystatechange = function(){

if(httpRequest.readyState === XMLHttpRequest.DONE){

  if (httpRequest.status === 200) {

   alert(httpRequest.responseText);

  } else {

  alert(‘There was a problem with the request.‘);

  }

  }

  httpRequest.open(‘GET‘,url);

//發送請求

  httpRequest.send();

}

原生的ajax請求經歷了這四部:

1.創建一個xmlhttpRequest請求

2.指定響應函數

3.發送請求

基於原生的ajax,大神們進行封裝凈化到了jquery的$.ajax,$.ajax如果用到現在的mvvm框架裏面就有點不搭了,顯得項目有點大占內存,配置和調用不友好

$.ajax({
   type: ‘POST‘,
   url: url,
   data: data,
   dataType: dataType,
   success: function () {},
   error: function () {}
});
自從2016年開始流行es6之後,fetxh和axios開始盛行了
axios:
  1.從瀏覽器中創建 XMLHttpRequest
  2.支持 Promise API
  3.客戶端支持防止CSRF
  4.提供了一些並發請求的接口(重要,方便了很多的操作)
  5.從 node.js 創建 http 請求
  6.攔截請求和響應
  7.轉換請求和響應數據
  8.取消請求
  9.自動轉換JSON數據 axios({   method: ‘post‘,   url: ‘/axios/ajax‘,   data: {      } })      .then(function (response) { console.log(response); })      .catch(function (error) { console.log(error);   }); axios相對於別的請求接口方法裏面是相對於處理的比較好的,也比較常用 fetch的寫法 fetch(url,parame,callback).then(respose.json()).then(data=>console.log(data)).catch(err =>console.log(err)) 下面這部分是博主的一些內容:

Ajax:
ajax,最早出現的發送後端請求技術,隸屬於原始js中,核心使用XMLHttpRequest對象,多個請求之間如果有先後關系的話,就會出現回調地獄。
Jquery Ajax:
是jQuery框架中的發送後端請求技術,由於jQuery是基於原始的基礎上做的封裝,所以,jquery Ajax自然也是對原始ajax的封裝
Fetch:
fetch號稱是AJAX的替代品,是在ES6出現的,使用了ES6中的promise對象。Fetch是基於promise設計的。Fetch的代碼結構比起ajax簡單多了,參數有點像jQuery ajax。但是,一定記住fetch不是ajax的進一步封裝,而是原生js。Fetch函數就是原生js,沒有使用XMLHttpRequest對象。
axios:

axios不是原生JS的,需要進行安裝,它不但可以在客戶端使用,而且可以在nodejs端使用。Axios也可以在請求和響應階段進行攔截。同樣也是基於promise對象的。



 

請求後臺接口的方式有什麽?有什麽區別