fetch的使用

最近的工作過(guò)程中,在做js調(diào)取接口的時(shí)候,使用了fetch,原來(lái)是只知道fetch,但是沒(méi)有怎么使用過(guò)。正好最近使用到,所以對(duì)其詳細(xì)了解了下。

fetch的基本方式

fetch(url,{
    method:'GET', # 'POST','PUT','DELETE'
    headers:{
        'Content-Type':'application/json', //'application/x-www-form-urlencoded'
        'Accept':'application/json'
    },
    body:JSON.stringfiy(body)
}).then((res)=>{
    
    return res.json() //返回一個(gè)Promise,解析成JSON,具體請(qǐng)看下面返回的數(shù)據(jù)
}).then(function(res){
    console.log(res) //獲取json數(shù)據(jù)
}).catch(function(error){
    console.log(error)  //請(qǐng)求錯(cuò)誤時(shí)返回
})

返回的數(shù)據(jù)

res.arrayBuffer()
讀取 res對(duì)象并且將它設(shè)置為已讀(因?yàn)镽esponses對(duì)象被設(shè)置為了 stream 的方式,所以它們只能被讀取一次) ,并返回一個(gè)被解析為ArrayBuffer格式的promise對(duì)象

res.blob()
讀取 res對(duì)象并且將它設(shè)置為已讀(因?yàn)镽esponses對(duì)象被設(shè)置為了 stream 的方式,所以它們只能被讀取一次) ,并返回一個(gè)被解析為Blob格式的promise對(duì)象

res.formData()
讀取res對(duì)象并且將它設(shè)置為已讀(因?yàn)镽esponses對(duì)象被設(shè)置為了 stream 的方式,所以它們只能被讀取一次) ,并返回一個(gè)被解析為FormData格式的promise對(duì)象

res.json()
讀取 res對(duì)象并且將它設(shè)置為已讀(因?yàn)镽esponses對(duì)象被設(shè)置為了 stream 的方式,所以它們只能被讀取一次) ,并返回一個(gè)被解析為JSON格式的promise對(duì)象

res.text()
讀取 res對(duì)象并且將它設(shè)置為已讀(因?yàn)镽esponses對(duì)象被設(shè)置為了 stream 的方式,所以它們只能被讀取一次) ,并返回一個(gè)被解析為USVString格式的promise對(duì)象

強(qiáng)制帶Cookie

默認(rèn)情況下, fetch不會(huì)從服務(wù)端發(fā)送或接收任何 cookies, 如果站點(diǎn)依賴于維護(hù)一個(gè)用戶會(huì)話,則導(dǎo)致未經(jīng)認(rèn)證的請(qǐng)求(要發(fā)送 cookies,必須發(fā)送憑據(jù)頭).

fetch(url, {
    method: 'GET',
    credentials: 'include' // 強(qiáng)制加入憑據(jù)頭
  })
  .then((res)=>{
    return res.text()
  })
  .then((res)=>{
    console.log(res)
  })
?著作權(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)容

  • 原文鏈接:https://www.cnblogs.com/libin-1/p/6853677.html 無(wú)論用Ja...
    九毛Evaline閱讀 9,254評(píng)論 0 7
  • 現(xiàn)在應(yīng)該很少有人用原生的JS內(nèi)置XMLHttpRequest對(duì)象寫異步調(diào)用了,仍然用的比較多的應(yīng)該是Jquery的...
    琉璃橙子閱讀 2,006評(píng)論 0 2
  • fetch是js提供進(jìn)行網(wǎng)絡(luò)請(qǐng)求的框架。 調(diào)用結(jié)構(gòu)是這樣的。 fetch( url , options ).the...
    lzh_coder閱讀 570評(píng)論 0 0
  • fetch已經(jīng)被大部分的瀏覽器兼容了,包括chrome,F(xiàn)irefox,safari,opera,edge,但是I...
    風(fēng)吹過(guò)的空氣閱讀 1,035評(píng)論 0 0
  • 都說(shuō)林子大了,什么鳥都有, 哦不,什么能人都有, 今天這位丸子,可以說(shuō)是夾娃娃界的傳奇,擁有令店主畏懼的力量, 只...
    丸子地球閱讀 3,855評(píng)論 0 5

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