Baseline Widely available *
Fetch API æä¾äºä¸ä¸ªè·åèµæºçæ¥å£ï¼å
æ¬è·¨ç½ç»éä¿¡ï¼ã对äºä»»ä½ä½¿ç¨è¿ XMLHttpRequest
ç人é½è½è½»æ¾ä¸æï¼è䏿°ç API æä¾äºæ´å¼ºå¤§åçµæ´»çåè½éã
夿³¨ï¼ æ¤ç¹æ§å¨ Web Worker ä¸å¯ç¨ã
æ¦å¿µåç¨æ³Fetch æä¾äºå¯¹ Request
å Response
ï¼ä»¥åå
¶ä»ä¸ç½ç»è¯·æ±æå
³çï¼å¯¹è±¡çéç¨å®ä¹ãè¿å°å¨æªæ¥æ´å¤éè¦å®ä»¬çå°æ¹ä½¿ç¨å®ä»¬ï¼æ è®ºæ¯ service workerãCache APIï¼åæè
æ¯å
¶ä»å¤ç请æ±åååºçæ¹å¼ï¼çè³æ¯ä»»ä½ä¸ç§éè¦ä½ èªå·±å¨ç¨åºä¸çæååºçæ¹å¼ï¼å³ä½¿ç¨è®¡ç®æºç¨åºæè
个人ç¼ç¨æä»¤ï¼ã
å®åæ¶è¿ä¸ºæå ³èæ§çæ¦å¿µï¼ä¾å¦ CORS å HTTP Origin æ 头信æ¯ï¼æä¾ä¸ç§æ°çå®ä¹ï¼å代å®ä»¬åæ¥é£ç§å离çå®ä¹ã
åéè¯·æ±æè
è·åèµæºï¼è¯·ä½¿ç¨ fetch()
æ¹æ³ãå®å¨å¾å¤æ¥å£ä¸é½è¢«å®ç°äºï¼æ´å
·ä½å°è¯´ï¼æ¯å¨ Window
å WorkerGlobalScope
æ¥å£ä¸ãå æ¤å¨å 乿æç¯å¢ä¸é½å¯ä»¥ç¨è¿ä¸ªæ¹æ³è·åèµæºã
fetch()
å¼ºå¶æ¥åä¸ä¸ªåæ°ï¼å³è¦è·åçèµæºçè·¯å¾ãå®è¿åä¸ä¸ª Promise
ï¼è¯¥ Promise ä¼å¨æå¡å¨ä½¿ç¨æ 头ååºåï¼å
ç°ä¸ºè¯¥è¯·æ±ç Response
ââå³ä½¿æå¡å¨çååºæ¯ HTTP éè¯¯ç¶æãä½ ä¹å¯ä»¥ä¼ ä¸ä¸ªå¯éç第äºä¸ªåæ° init
ï¼åè§ Request
ï¼ã
䏿¦ Response
被è¿åï¼æè®¸å¤æ¹æ³å¯ä»¥è·å主ä½å®ä¹çå
容以åå¦ä½å¤çå®ã
ä½ ä¹å¯ä»¥éè¿ Request()
å Response()
æé 彿°ç´æ¥å建请æ±åååºã使¯æä»¬ä¸å»ºè®®è¿ä¹åï¼å®ä»¬æ´å¯è½è¢«å建为å
¶ä»ç API æä½çç»æï¼æ¯å¦ï¼service worker ä¸ç FetchEvent.respondWith
ï¼ã
fetch
è§è主è¦å¨ä¸ä¸ªæ¹é¢ä¸ jQuery.ajax()
ä¸åï¼
fetch()
è¿åç Promise ä¸ä¼å HTTP çéè¯¯ç¶æè被æç»ï¼å³ä½¿ååºæ¯ HTTP 404
æ 500
ãç¸åï¼å®å°æ£å¸¸å
ç°ï¼ok
ç¶æä¼è¢«è®¾ç½®ä¸º false
ï¼ï¼å¹¶ä¸åªæå¨ç½ç»æ
éæè
æä»»ä½é»æ¢è¯·æ±å®ææ¶ï¼ææç»ãfetch()
å°ä¸ä¼åéè·¨æº cookieã
'same-origin'
ã以䏿µè§å¨åå¸äºè¿æ¶çåç fetchï¼å¹¶å¨ä»¥ä¸çæ¬ä¸æ´æ°ï¼Firefox 61.0b13ãSafari 12ãChrome 68ãcredentials: 'same-origin'
ç init 对象ã夿³¨ï¼ æ´å¤å ³äº Fetch API çç¨æ³ï¼åèä½¿ç¨ Fetchã
䏿¢ fetchè¦ä¸æ¢æªå®æç fetch()
ï¼çè³ XMLHttpRequest
æä½ï¼è¯·ä½¿ç¨ AbortController
å AbortSignal
æ¥å£ã
fetch()
å
å«äº fetch()
æ¹æ³ï¼ç¨äºè·åèµæºã
表示ååº/请æ±çæ 头信æ¯ï¼å è®¸ä½ æ¥è¯¢å®ä»¬ï¼æè é对ä¸åçç»æåä¸åçæä½ã
Request
ç¸å½äºä¸ä¸ªèµæºè¯·æ±ã
Response
ç¸å½äºè¯·æ±çååº
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4