您好,登錄后才能下訂單哦!
這篇文章主要介紹JavaScript中使用Fetch()的案例,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
Fetch()提供了一種方式進(jìn)行跨網(wǎng)絡(luò)異步請求資源的方式,用于訪問和操作HTTP管道的部分,比如:請求和相應(yīng)。
接收到表示錯誤的HTTP狀態(tài)碼時,fetch()返回的Promise不會被標(biāo)記為reject(即使?fàn)顟B(tài)碼為404或500)。fetch()會將Promise狀態(tài)標(biāo)記為resolve(但resolve返回值但OK 屬性設(shè)置為 false)。網(wǎng)絡(luò)故障或請求被阻止才會標(biāo)記為reject。
fetch()不會從服務(wù)端發(fā)送或接收任何cookies。發(fā)送cookies 需要設(shè)置 fetch(url, {credentials: 'include'}) 選項。
var xhr = new XMLHttpRequest(); xhr.open('GET', url); xhr.responseType = 'json'; xhr.onload = function() { console.log(xhr.response); }; xhr.onerror = function() { console.log("Oops, error"); }; xhr.send();
fetch(url).then(function(response) { return response.json(); }).then(function(data) { console.log(data); }).catch(function(e) { console.log("Oops, error"); });
使用箭頭函數(shù):
fetch(url).then(response => response.json()) .then(data => console.log(data)) .catch(e => console.log("Oops, error", e))
獲取一個JSON文件,并打印到控制臺。指明資源路徑,然后返回一個Response對象,使用json()方法獲取JSON但內(nèi)容。
fetch()接受第二個可選參數(shù),控制不同配置的init參數(shù)。
// Example POST method implementation: postData('http://example.com/answer', {answer: 42}) .then(data => console.log(data)) // JSON from `response.json()` call .catch(error => console.error(error)) function postData(url, data) { // Default options are marked with * return fetch(url, { body: JSON.stringify(data), // must match 'Content-Type' header cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached credentials: 'same-origin', // include, same-origin, *omit headers: { 'user-agent': 'Mozilla/4.0 MDN Example', 'content-type': 'application/json' }, method: 'POST', // *GET, POST, PUT, DELETE, etc. mode: 'cors', // no-cors, cors, *same-origin redirect: 'follow', // manual, *follow, error referrer: 'no-referrer', // *client, no-referrer }) .then(response => response.json()) // parses response to JSON }
包含憑據(jù)的請求:
fetch('https://example.com', { //將credentials: 'include'添加到傳遞給fetch()方法的init對象 credentials: 'include' })
若在同源櫥發(fā)送憑據(jù):
fetch('https://example.com', { credentials: 'same-origin' })
確保瀏覽器不在請求中包含憑據(jù):
fetch('https://example.com', { credentials: 'omit' })
var url = 'https://example.com/profile'; var data = {username: 'example'}; fetch(url, { method: 'POST', // or 'PUT' body: JSON.stringify(data), // data can be `string` or {object}! headers: new Headers({ 'Content-Type': 'application/json' }) }).then(res => res.json()) .catch(error => console.error('Error:', error)) .then(response => console.log('Success:', response));
使用 <input type="file" />
、FormData()
和 fetch()
使用Headers構(gòu)造函數(shù)創(chuàng)建headers對象,headers對象為多鍵值對:
var content = "Hello World"; var myHeaders = new Headers(); myHeaders.append("Content-Type", "text/plain"); myHeaders.append("Content-Length", content.length.toString()); myHeaders.append("X-Custom-Header", "ProcessThisImmediately");
內(nèi)容可被獲取:
console.log(myHeaders.has("Content-Type")); // true console.log(myHeaders.has("Set-Cookie")); // false
語法簡潔,更加語義化
基于標(biāo)準(zhǔn) Promise 實(shí)現(xiàn),支持 async/await
同構(gòu)方便,使用 isomorphic-fetch
以上是JavaScript中使用Fetch()的案例的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。