fetch
是乙個與ajax請求功能相似的乙個請求介面,並且只有瀏覽器該方法。fetch
的出現一方面是為了緩解原生xmlhttprequest
實現起來比較雜亂的問題。下面是乙個例子:
用xhr
物件實現ajax
請求:
xhr.send();用fetch
實現ajax
請求:
fetch(url, ).then(res=> ).then(data=> ).catch(error=> )
可以看到fetch
會比原生xhr簡單很多,並且fetch
返回是乙個promise
物件。然而,fetch
請求預設是不帶 cookie 的,需要設定請求引數,並且當伺服器返回 400,500 錯誤碼時並不會reject
,只有網路錯誤這些導致請求不能完成時,fetch
才會被reject
。
因此,在fetch
請求時,通常會做一層封裝,我們可以用下面的方式去封裝。
function fetch(url, options) ,
credentials: 'include'
//包含cookie
}// 合併請求
object.assign(init, options);
//get方法:查詢字元附在url後面;
if(init.method == 'get' && options.data || init.method == 'head')
}url = url + '?' + searchstr;
}return fetch(url, init).then( res=> else
return res.json()
}).then(data=> )
.catch(error=> )
}
封裝axios和fetch方法
比較兩種請求方式 3.比較fetch和axios fetch並沒有進行封裝,拿到就是格式化後的資料 3.更多詳情請參考 axios和fetch請求詳解 axios封裝 封裝一下axios 它是乙個函式,因為它要攜帶引數 function request then res resolve res ca...
封裝 原生 fetch
fetch方法是 fetch api的乙個方法,提供了一種簡單 合理的方式來跨網路非同步獲取資源。與原來的xmlhttprequest比較,fetch更容易與其他的技術結合 比如service workers。還提供了單個邏輯位置來定義其他http相關概念,例如cors和http的擴充套件。預設情況...
瀏覽器原生Fetch方法封裝
瀏覽器原生的fetch方法是一種promise形式的非同步互動方法 目前大部分瀏覽器都已支援 ie我沒說你 fetch.js檔案 export function obj2params obj return result result.slice 1 result export const post ...