Baseline Widely available *
fetch()
㯠Window
ã¤ã³ã¿ã¼ãã§ã¤ã¹ã®ã¡ã½ããã§ããããã¯ã¼ã¯ãããªã½ã¼ã¹ãåå¾ããããã»ã¹ãéå§ããã¬ã¹ãã³ã¹ãå©ç¨ã§ããããã«ãªã£ããå±¥è¡ããããããã¹ãè¿ãã¾ãã
ãã®ãããã¹ã¯ããã®ãªã¯ã¨ã¹ãã«å¯¾ããã¬ã¹ãã³ã¹ã表ã Response
ã§è§£æ±ºãã¾ãã
fetch()
ã®ãããã¹ã¯ããããã¯ã¼ã¯ã¨ã©ã¼ãçºçããå ´åï¼æ®éã¯æ¨©éã®åé¡ããã£ãã¨ããªã©ï¼ã®ã¿æå¦ããã¾ãã fetch()
ã®ãããã¹ã¯ããµã¼ãã¼ãã¨ã©ã¼ã示ã HTTP ã¹ãã¼ã¿ã¹ã³ã¼ãï¼404
ã504
ãªã©ï¼ãè¿ãã¦ãæå¦ããã¾ããã 代ããã«ã then()
ãã³ãã©ã¼ã§ Response.ok
ã Response.status
ããããã£ããã§ãã¯ããå¿
è¦ãããã¾ãã
fetch()
ã¡ã½ããã¯åå¾ãããªã½ã¼ã¹ã®ãã£ã¬ã¯ãã£ãã§ã¯ãªããã³ã³ãã³ãã»ãã¥ãªãã£ããªã·ã¼ã® connect-src
ãã£ã¬ã¯ãã£ãã«ãã£ã¦å¶å¾¡ããã¾ãã
ã¡ã¢: fetch()
ã¡ã½ããã®å¼æ°ã¯ Request()
ã³ã³ã¹ãã©ã¯ã¿ã¼ã¨å
¨ãåãã§ãã
fetch(resource)
fetch(resource, options)
弿°
resource
åå¾ããããªã½ã¼ã¹ãå®ç¾©ãã¾ãã以ä¸ã®ã©ã¡ããã使ç¨ã§ãã¾ãã
URL
ãªãã¸ã§ã¯ããå«ãï¼ãåå¾ããããªã½ã¼ã¹ã®ç´æ¥ã® URL ãå«ãæååã§ãããã® URL ã¯ãææ¸å
ã® baseURI
ãã¯ã¼ã«ã¼ã³ã³ããã¹ãã§ã¯ WorkerGlobalScope.location
ã¨ãªãã¾ããRequest
ãªãã¸ã§ã¯ããoptions
çç¥å¯
ãªã¯ã¨ã¹ãã«é©ç¨ããç¬èªã®è¨å®ãå«ã RequestInit
ãªãã¸ã§ã¯ãã§ãã
Promise
ã§ã Response
ãªãã¸ã§ã¯ãã«è§£æ±ºãã¾ãã
AbortError
DOMException
AbortController
ã® abort()
ã¡ã½ããã®å¼ã³åºãã«ãããªã¯ã¨ã¹ãã䏿¢ãããã
NotAllowedError
DOMException
ããã㯠API ã使ç¨ãããã¨ããæ¨©éããªã·ã¼ã® browsing-topics
ã«ãã£ã¦ç¹å¥ã«ç¦æ¢ããã¦ããããã㦠fetch()
ãªã¯ã¨ã¹ãã browsingTopics: true
ã§è¡ãããã¨ãã«çºçãã¾ãã
TypeError
以ä¸ã®çç±ã§çºçããå¯è½æ§ãããã¾ãã
attribution-reporting
Permissions-Policy
ã§ãfetch()
ãªã¯ã¨ã¹ãã attributionReporting
ãæå®ãã¦è¡ããã¾ããã ãããã¼åãç¡å¹ã§ããã
// "C ontent-Type" ã«ç©ºç½ããã const headers = { 'C ontent-Type': 'text/xml', 'Breaking-Bad': '<3', }; fetch('https://example.com/', { headers });ãããã¼ã®å¤ãç¡å¹ã§ããããããã¼ãªãã¸ã§ã¯ãã¯æ£ç¢ºã« 2 ã¤ã®è¦ç´ ãå«ã¾ãªããã°ãªããªãã
const headers = [ ['Content-Type', 'text/html', 'extra'], ['Accept'], ]; fetch('https://example.com/', { headers });URL ã¾ãã¯ã¹ãã¼ã ãç¡å¹ã§ãããããã§ããã対å¿ãã¦ããªãã¹ãã¼ã ã使ç¨ãã¦ããããã¾ãã¯ç¹å®ã®ãªã¯ã¨ã¹ãã¢ã¼ãã«å¯¾å¿ãã¦ããªãã¹ãã¼ã ã使ç¨ãã¦ããã
fetch('blob://example.com/', { mode: 'cors' });URL ã«è³æ ¼æ å ±ãå ¥ã£ã¦ããã
fetch('https://user:password@example.com/');ãªãã¡ã©ã¼ URL ã䏿£ã§ããã
fetch('https://example.com/', { referrer: './abc\u0000df' });ã¢ã¼ãã䏿£ï¼
navigate
ã websocket
ï¼ã
fetch('https://example.com/', { mode: 'navigate' });ãªã¯ã¨ã¹ããã£ãã·ã¥ã¢ã¼ãã "only-if-cached" ã§ããã¤ãªã¯ã¨ã¹ãã¢ã¼ãã "same-origin" 以å¤ã®å ´åã
fetch('https://example.com/', { cache: 'only-if-cached', mode: 'no-cors', });ãªã¯ã¨ã¹ãã¡ã½ãããç¡å¹ãªååãã¼ã¯ã³ã§ããå ´åãã¾ãã¯ç¦æ¢ããããããã¼ï¼
'CONNECT'
, 'TRACE'
, 'TRACK'
ï¼ã® 1 ã¤ã§ããå ´åã
fetch('https://example.com/', { method: 'CONNECT' });ãªã¯ã¨ã¹ãã¢ã¼ãã "no-cors" ã§ããããªã¯ã¨ã¹ãã¡ã½ããã CORS ã»ã¼ããªã¹ãã«æ²è¼ããã¦ããã¡ã½ããï¼
'GET'
, 'HEAD'
, 'POST'
ï¼ã§ãªãå ´åã
fetch('https://example.com/', { method: 'CONNECT', mode: 'no-cors', });ãªã¯ã¨ã¹ãã¡ã½ããã
'GET'
ã¾ã㯠'HEAD'
ã§ãæ¬ä½ã null ã§ãªããã undefined ã§ãªãå ´åã
fetch('https://example.com/', { method: 'GET', body: new FormData(), });fetch ããããã¯ã¼ã¯ã¨ã©ã¼ãçºçããå ´åã ä¾
Fetch Request ã®ä¾ï¼Fetch Request ã®ã©ã¤ãçãåç
§ï¼ã§ã¯ã Request
ãªãã¸ã§ã¯ããé¢é£ããã³ã³ã¹ãã©ã¯ã¿ã¼ã§ä½æãã¦ãã¾ãããã®å¾ã§ fetch()
ãå¼ã³åºãã¦åå¾ãã¦ãã¾ããç»åãèªã¿åã£ã¦ãããããã¬ã¹ãã³ã¹ã§ Response.blob()
ãå®è¡ãã¦æ£ãã MIME ã¿ã¤ããæå®ãã¦æ£ããæ±ãããããã«ãããªãã¸ã§ã¯ã URL ã使ã㦠<img>
è¦ç´ ã«è¿½å ãã¦è¡¨ç¤ºããã¦ãã¾ãã
const myImage = document.querySelector("img");
const myRequest = new Request("flowers.jpg");
window
.fetch(myRequest)
.then((response) => {
if (!response.ok) {
throw new Error(`HTTP error! Status: ${response.status}`);
}
return response.blob();
})
.then((response) => {
myImage.src = URL.createObjectURL(response);
});
Fetch Request with init ã®ä¾ï¼Fetch Request init ã®ã©ã¤ãçï¼ã§ã¯ä¸è¨ã®å
容ã«å ãã¦ãfetch()
ãå¼ã³åºãã¨ããåæåãªãã¸ã§ã¯ã init
ãæ¸¡ãã¦ãã¾ãã ãã®å ´åãCache-Control
å¤ãè¨å®ãããã¨ã§ãã©ã®ãããªãã£ãã·ã¥ã¬ã¹ãã³ã¹ã§ããã°åé¡ãªããã示ããã¨ãã§ãã¾ãã
const myImage = document.querySelector("img");
const reqHeaders = new Headers();
// ãã£ãã·ã¥ãããã¬ã¹ãã³ã¹ã¯ãããã 1 é±é以ä¸åã®ãã®ã§ãªããã°åé¡ãªã
reqHeaders.set("Cache-Control", "max-age=604800");
const options = {
headers: reqHeaders,
};
// init ããããã¼ã¨ä¸ç·ã« "options" ãªãã¸ã§ã¯ãã¨ãã¦æ¸¡ã
const req = new Request("flowers.jpg", options);
fetch(req).then((response) => {
// ...
});
åæ§ã« init
ãªãã¸ã§ã¯ãã Request
ã³ã³ã¹ãã©ã¯ã¿ã¼ã«æ¸¡ãã¦ããåã广ãå¾ããã¾ãã
const req = new Request("flowers.jpg", options);
init
ã® headers
ã§ãªãã¸ã§ã¯ããªãã©ã«ã使ç¨ãããã¨ãã§ãã¾ãã
const options = {
headers: {
"Cache-Control": "max-age=60480",
},
};
const req = new Request("flowers.jpg", options);
仿§æ¸ ãã©ã¦ã¶ã¼ã®äºææ§ é¢é£æ
å ±
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