摘要:如題,新增的真的簡單易用,感覺現(xiàn)在這一個支持完全可行。雖然兼容性問題還是存在,但是打上后就基本解決了。來自使用簡單使用這里說明一下,必須配合一起使用,這會得到更佳效果。
如題,es6 新增的fetch真的簡單易用,感覺現(xiàn)在這一個支持完全可行。
雖然兼容性問題還是存在,但是打上polyfill后就基本解決了。
Browser Support Chrome Firefox Safari 6.1+ Internet Explorer 10+
使用 簡單使用來自:github / fetch
這里說明一下,fetch必須配合promise一起使用,這會得到更佳效果。
# get fetch("/api/user/1", {method: "GET"}).then(res => res.json).then(console.log).catch(console.error); # console.log ###### # {id: 1, username: "Packy", email: "packy@uxfeel.com"} # post var formData = new FormData(); formData.append("username", "cathy"); formData.append("email", "cathy@uxfeel.com"); fetch("/api/user", {method: "POST", body: formData}).then(res => res.json).then(console.log).catch(console.error); # console.log ###### # {code: "0", msg: "", data:{}}跨域
跨域問題并不難只需加上 mode:"cors" 參數(shù),如:
# cross post var formData = new FormData(); formData.append("username", "cathy"); formData.append("email", "cathy@uxfeel.com"); fetch( "http://192.168.1.120/api/user", { method: "POST", body: formData, // 設(shè)為跨域請求 mode:"cors" } ).then(res => res.json).then(console.log).catch(console.error);
想詳細(xì)了解,請記住CORS關(guān)鍵詞并看這里
你可能還需要...想使用起來更舒心,你還得引用以下這兩個包解決兼容:
es6-promise
url-search-params
具體使用例子:
# api.js require("es6-promise").polyfill(); require("fetch"); // 此判斷在某些瀏覽器并不能正常檢查,導(dǎo)致URLSearchParams不可用,如果你知道具體問題聯(lián)系以下博主 //if ("searchParams" in HTMLAnchorElement.prototype) { var URLSearchParams = require("url-search-params"); //} function handle(response){ return new Promise(function(resolve, reject){ if(response.status === 200){ resolve(response.json()) }else{ var message = defaults.serverError[response.status]; var e = new Error(message || "未知請求錯誤!"); e.response = response; reject(e); } }); } module.exports = { // 登錄 login: function(data){ var url = "/user/login"; var formData = new FormData(); Object.keys(data).map(function(attr){ formData.append(attr, data[attr]); }) return fetch(url, { method: "POST", body: formData, }).then(handle).catch(handle); }, // 發(fā)送手機驗證短信 sendCode: function(data){ var url = "/user/sendCode"; var params = new URLSearchParams(""); Object.keys(data).map(function(attr){ params.append(attr, data[attr]); }) url+="?"+params.toString(); return fetch(url, { method: "GET", }).then(handle).catch(handle) } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/91211.html
摘要:文件上傳基本是學(xué)習(xí)前端路上必定遇到的例子,然而網(wǎng)上能找到的都是單單滿足上傳這步的案例。但前提是需要約定傳入值和返回類型。 文件上傳基本是學(xué)習(xí)前端路上必定遇到的例子,然而網(wǎng)上能找到的都是單單滿足上傳這步的案例。大多文章之所以只說上傳這步估計是簡單易入門,但是實際工作時就會發(fā)現(xiàn)上傳文件這個功能上是簡單的,邏輯上卻比較復(fù)雜。 先說一下需求和功能點: 需求:上傳文件到服務(wù)器 功能:上傳 單這么...
摘要:然而我真的太天真,微信瀏覽器怎樣會讓你這樣好過問題集中于自動播放視頻這塊,需求很簡單自動播放全屏不顯示工具條自動播放一步步來,自動播放這個問題在十分肯定默認(rèn)是不支持的,必須基于用戶操作下才能加載視頻。至于在微信下和一個樣。 某天收到舊同事的信息說希望我?guī)褪肿鲆幌乱粋€簡單的H5,然后我看了看的確很簡單: 就是圖片滾動到最后自動播放視頻,播完顯示個按鈕交互。 然而我真的太天真,微信瀏覽器怎...
摘要:前言由于博主最近又閑下來了,之前覺得的官方文檔比較難啃一直放到現(xiàn)在。文章會逐步分析每個處理的用意當(dāng)然是博主自己的理解,不足之處歡迎指出溝通交流。后續(xù)將會補上構(gòu)建生產(chǎn)的配置分析,案例參考。前端臨床手札構(gòu)建逐步解構(gòu)下 前言 由于博主最近又閑下來了,之前覺得webpack的官方文檔比較難啃一直放到現(xiàn)在。細(xì)心閱讀多個webpack配置案例后覺得還是得自己寫個手腳架,當(dāng)然這個案例是基于vue的,...
閱讀 1243·2021-11-22 15:24
閱讀 4651·2021-09-23 11:51
閱讀 2397·2021-09-08 09:36
閱讀 3570·2019-08-30 15:43
閱讀 1360·2019-08-30 13:01
閱讀 1167·2019-08-30 12:48
閱讀 599·2019-08-29 12:52
閱讀 3440·2019-08-29 12:41