更新时间:2024-08-14 19:50:31
fetch()
方法提供了一个用于通过 HTTP 请求异步获取资源的接口,您可以在Edge Cloud Apps 函数中使用它。
注意: 异步任务(如 fetch()
)必须在处理程序内部执行。如果您尝试在全局作用域内调用 fetch()
,您的函数将返回错误。
fetch(resource, options); // options 可选
fetch()
函数返回一个 Promise
对象,该对象最终会解析为一个 Response
对象。
resource
: Request
| string
| URL
要获取的资源,可以是 Request
对象、字符串或 URL
对象。
options
(可选): object
一个对象,用于定义请求的内容和行为。可选属性包括:
method
: 请求方法,例如 GET
、POST
、PUT
、DELETE
等。headers
: 请求头,一个包含请求头键值对的对象。body
: 请求体,可以是字符串、FormData
、Blob
、ArrayBuffer
等。mode
: 请求模式,例如 cors
、no-cors
、same-origin
等。credentials
: 凭证模式,例如 include
、same-origin
、omit
等。cache
: 缓存模式,例如 default
、no-cache
、reload
、force-cache
、only-if-cached
等。redirect
: 重定向模式,例如 follow
、error
、manual
等。referrer
: 请求的引用者,可以是字符串或 URL
对象。referrerPolicy
: 请求的引用者策略,例如 no-referrer
、no-referrer-when-downgrade
、origin
、origin-when-cross-origin
、same-origin
、strict-origin
、strict-origin-when-cross-origin
、unsafe-url
等。integrity
: 请求的完整性元数据,用于验证响应的完整性。keepalive
: 一个布尔值,指示是否保持连接。signal
: 一个 AbortSignal
对象,用于中止请求。ignoreHttpsCert
: 一个布尔值,指示是否忽略 HTTPS 证书验证错误,默认为 false
。cdnCache
: 一个对象,用于配置 CDN 缓存行为,可选属性包括:
ignoreCache
: 布尔值,指示是否忽略 CDN 缓存,默认为 false
。maxAge
: 数字,以秒为单位设置缓存对象的有效期。sMaxAge
: 数字,以秒为单位设置共享缓存对象的有效期,仅对 public
缓存生效。以下代码段展示了如何使用 fetch()
方法发出 POST
请求,并设置忽略 HTTPS 证书错误和 CDN 缓存行为:
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
async function handleRequest(request) {
const init = {
method: 'POST',
headers: {
'content-type': 'application/json;charset=UTF-8',
'custom-header1': 'value1',
'custom-header2': 'value2'
},
body: JSON.stringify({
key1: 'value3',
key2: 'value4'
}),
// 忽略 HTTPS 证书验证错误
ignoreHttpsCert: true,
// 配置 CDN 缓存行为
cdnCache: {
ignoreCache: false,
maxAge: 3600,
sMaxAge: 1800
}
}
// 发起请求
const response = await fetch('http://example.com', init)
// 将请求返回给客户端
return response
}