新聞中心
fetch號稱是AJAX的替代品,是在ES6出現(xiàn)的,使用了ES6中的promise對象。Fetch是基于promise設計的。Fetch的代碼結(jié)構(gòu)比起ajax簡單多了,參數(shù)有點像jQuery ajax。但是,一定記住fetch不是ajax的進一步封裝,而是原生js,沒有使用XMLHttpRequest對象,下面為大家詳細講解一下Fetch的使用方法。

創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設、高性價比尼開遠網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式尼開遠網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設找我們,業(yè)務覆蓋尼開遠地區(qū)。費用合理售后完善,十年實體公司更值得信賴。
ajax
使用步驟 1.創(chuàng)建XmlHttpRequest對象 2.調(diào)用open方法設置基本請求信息 3.設置發(fā)送的數(shù)據(jù),發(fā)送請求 4.注冊監(jiān)聽的回調(diào)函數(shù) 5.拿到返回值,對頁面進行更新
//1.創(chuàng)建Ajax對象
if(window.XMLHttpRequest){
var oAjax=new XMLHttpRequest();
}else{
var oAjax=new ActiveXObject("Microsoft.XMLHTTP");
}
//2.連接服務器(打開和服務器的連接)
oAjax.open('GET', url, true);
//3.發(fā)送
oAjax.send();
//4.接收
oAjax.onreadystatechange=function (){
if(oAjax.readyState==4){
if(oAjax.status==200){
//alert('成功了:'+oAjax.responseText);
fnSucc(oAjax.responseText);
}else{
//alert('失敗了');
if(fnFaild){
fnFaild();
}
}
}
};
fetch
特點 1、第一個參數(shù)是URL: 2、第二個是可選參數(shù),可以控制不同配置的 init 對象 3、使用了 JavaScript Promises 來處理結(jié)果/回調(diào):
fetch(url).then(response => response.json())
.then(data => console.log(data))
.catch(e => console.log("Oops, error", e))
更酷的一點 你可以通過Request構(gòu)造器函數(shù)創(chuàng)建一個新的請求對象,你還可以基于原有的對象創(chuàng)建一個新的對象。 新的請求和舊的并沒有什么不同,但你可以通過稍微調(diào)整配置對象,將其用于不同的場景。例如:
var req = new Request(URL, {method: 'GET', cache: 'reload'});
fetch(req).then(function(response) {
return response.json();
}).then(function(json) {
insertPhotos(json);
});
上面的代碼中我們指明了請求使用的方法為GET,并且指定不緩存響應的結(jié)果,你可以基于原有的GET請求創(chuàng)建一個POST請求,它們具有相同的請求源。代碼如下:
// 基于req對象創(chuàng)建新的postReq對象
var postReq = new Request(req, {method: 'POST'});
fetch和ajax 的主要區(qū)別
1、fetch()返回的promise將不會拒絕http的錯誤狀態(tài),即使響應是一個HTTP 404或者500 2、在默認情況下 fetch不會接受或者發(fā)送cookies
網(wǎng)頁題目:詳解Fetch的使用方法
文章來源:http://www.5511xx.com/article/dppsooe.html


咨詢
建站咨詢
