根据特殊分支场景,修改用户请求内容。
示例代码
async function handleRequest(request) {
// 修改当前请求的地址的 host 指向别的域名
const url = new URL(request.url)
url.hostname = "www.ctyun.cn"
url.protocol = "https"
// 继承原始请求的头、请求方法等参数
let new_headers = request.headers
new_headers.delete("Host")
const requestInit = {
method: request.method,
new_headers,
}
const new_req = new Request(url, requestInit)
// 访问 your-domain/path 即请求 ctyun.cn/path
return fetch(new_req)
}
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request))
})
示例预览
请求内容被修改,根据用户修改后的请求响应其他内容。
相关参考
- 运行时API:addEventListener
- 运行时API:FetchEvent
- 运行时API:Web Standards
- 运行时API:Fetch
- 运行时API:Request
- 运行时API:Response