35 高級(jí):自己實(shí)現(xiàn)AJAX

  • 用JS設(shè)置請(qǐng)求頭
設(shè)置第一部分:request.open('get','/xxx')
設(shè)置第二部分:request.setRequestHeader('content-type','x-www-form-urlencoded')
設(shè)置第三部分:request.send('key1=value1&key2=value2')
  • 用JS獲取響應(yīng)頭
獲取第一部分:request.status / request.statusText
獲取第二部分:request.getResponseHeader('Content-Type') / request.getAllResponseHeaders()
獲取第四部分:request.responseText
  • 為了避免寫的API參數(shù)太多而混亂的情況,一般把要傳入的多個(gè)參數(shù)變成對(duì)象,把該對(duì)象的key定下來,就相當(dāng)于參數(shù)命名(ES6的解構(gòu)賦值)
  • 即使響應(yīng)是4開頭的狀態(tài)碼,也會(huì)有第四部分,也可以讀取第四部分
  • 通過arguments.length來使得函數(shù)可以接收不固定個(gè)數(shù)的參數(shù)
function f1(x1[,x2]){
  if(arguments.length === 1){......}
  else if(arguments.length === 2){......}
}

上述代碼可以只傳一個(gè)參數(shù),也可以傳多個(gè)參數(shù)

  • 假如函數(shù)形參少于實(shí)際參數(shù),傳入的實(shí)際參數(shù)可以從arguments對(duì)象中獲得

    image.png

  • es6 解構(gòu)賦值


    image.png
  • jquery.ajax()會(huì)將響應(yīng)里content-Type是json的內(nèi)容進(jìn)行parse將字符串轉(zhuǎn)換成對(duì)象

  • 實(shí)現(xiàn)jQuery.ajax的封裝

window.jQuery.ajax = function({url,method,body}){//函數(shù)參數(shù)傳入用到了es6的解構(gòu)賦值
  return new Promise(function(resolve,reject){
      let request = XMLHttpRequest()
      request.open(method,url)
      request.onreadychange = function(){
          if(request.readyState === 4){
              if(request.status === 200){resolve()}
              else{reject()}    
          }
      }
      request.send()
    })
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、JS操作請(qǐng)求與響應(yīng) 之前,已經(jīng)了解過請(qǐng)求與響應(yīng)都由4部分組成,那么在使用AJAX發(fā)請(qǐng)求時(shí)能否自由的設(shè)置或是獲取...
    格林姆大師閱讀 364評(píng)論 0 1
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標(biāo)準(zhǔn)。 注意:講述HT...
    kismetajun閱讀 28,829評(píng)論 1 45
  • $HTML, HTTP,web綜合問題 1、前端需要注意哪些SEO 2、 的title和alt有什么區(qū)別 3、HT...
    Hebborn_hb閱讀 4,783評(píng)論 0 20
  • 請(qǐng)參看我github中的wiki,不定期更新。https://github.com/ivonzhang/Front...
    zhangivon閱讀 7,771評(píng)論 2 19
  • 按照慣例,正月初二是我們弟兄姐妹相約去舅家拜年的日子。兒時(shí)過年去舅家,都是跟著媽媽,而且不可能弟兄姐妹...
    宗林的李閱讀 614評(píng)論 3 10

友情鏈接更多精彩內(nèi)容