根据特殊分支场景,修改源站响应内容。
示例代码
async function handleRequest(request) {
// 获取原始的请求数据
const originalResponse = await fetch("http://www.ctyun.cn")
const url = new URL(request.url)
const params = url.searchParams
// 如果传入 title 参数,尝试填充到页面中,修改返回的内容
let title = params.get("title")
if (title != "") {
title = encodeURIComponent(title)
let text = await originalResponse.text()
text = text.replace("<title>", "<title>" + title + " | ")
return new Response(text, originalResponse)
}
return originalResponse
}
addEventListener("fetch", event => {
event.respondWith(handleRequest(event.request))
})
示例预览
源站响应内容被修改。
相关参考
- 运行时API:addEventListener
- 运行时API:FetchEvent
- 运行时API:Web Standards
- 运行时API:Response
- 运行时API:Fetch