function fetch(request: string | Request, requestInit?: RequestInit): Promise<Response>
参数名称 | 类型 | 必填 | 说明 |
request | 是 | 指定将要获取的请求资源。 | |
requestInit | 否 |
fetch
时,可以通过传入特定参数实现更精细的控制和定制化逻辑。主要包含访问 EdgeOne 节点缓存或回源,图片处理,重定向。www.example.com
),同时该请求触发了边缘函数执行,此时在该边缘函数中实现 fetch(www.example.com)
请求,该请求将访问 EdgeOne 节点缓存,若不存在缓存,则进行回源。fetch
访问 EdgeOne 节点缓存与回源,需满足以下条件:fetch(request)
指定的 request.url
中的 HOST 和客户端请求 URL 中的 HOST 相同。fetch(request)
指定的 request.headers.host
和客户端请求头 HOST 值相同。fetch(event.request)
获取 EdgeOne 缓存与回源。addEventListener('fetch', (event) => {// fetch(event.request) 获取 EdgeOne CDN 缓存与回源。const response = fetch(event.request);event.respondWith(response);});
fetch(url)
获取 EdgeOne 缓存与回源。addEventListener('fetch', (event) => {event.respondWith(handleEvent(event));});async function handleEvent(event) {const { request } = event;const urlInfo = new URL(request.url);// 回源 URL 改写const url = `${urlInfo.origin}/h5/${urlInfo.pathname}`;// fetch(url) 获取 EdgeOne CDN 缓存与回源。const response = await fetch(url);return response;}
fetch(request, requestInit)
实现图片处理时,需要同时满足 fetch
获取 EdgeOne 节点缓存与回源的条件。状态码 | 重定向规则 |
301、302 | POST 方法被转为 GET 方法。 |
303 | 除 HEAD / GET 外的所有方法都被转为 GET 方法。 |
307、308 | 保留原始方法。 |
Location
,若无该响应头,则不会重定向。Location
值可以是绝对 URL 或者相对 URL,详情参见 RFC-3986: URI Reference。fetch
发起请求,存在以下限制:fetch
总次数为 64,超过该限制的 fetch
请求会请求失败,并抛出异常。fetch
最大并发数为 8,超过该限制的 fetch
请求会被延迟发起,直到某个正在运行着的 fetch
被 resolve。fetch
请求。
本页内容是否解决了您的问题?