AI 摘要
生成中...
刚刚给「随笔」的页面增加了展示豆瓣影音的卡片,从 NeoDB API 获取数据,但是手机上没开代理浏览时发现无法获取到数据,想起来之前在某位大佬的博客中看到过利用 Cloudfare Worker 来代理请求的地址,所以就尝试了一下,发现确实好用。
创建 Worker
首先进入 Cloudfare 的官网,然后点击左侧的 Workers,然后点击 创建 按钮。
创建完 worker 后,编辑并粘贴下方的代码,然后点击「部署」。
worker.js
export default {
async fetch(request, env) {
const url = new URL(request.url)
url.host = 'neodb.social'
// 检查请求的来源
const origin = request.headers.get('Origin') || request.headers.get('Referer')
if (!origin || !origin.includes('kirbyrun.com')) {
return new Response('Unauthorized', { status: 403 })
}
return fetch(new Request(url, request))
},
}部署后,回到“设置”,在「域和路由」这里点击「添加」,选择「路由」。区域选择你的域名,路由设置为 neodb.kirbyrun.com/*。
增加 DNS 记录
在你的域名 DNS 里添加 2 条 A 记录。
| 类型 | 名称 | 值 | 备注 |
|---|---|---|---|
| A | neodb | 104.18.2.161 | 仅 DNS |
| A | neodb | 104.18.3.161 | 仅 DNS |
使用 Cloudflare 代理地址来请求
原始请求地址是 https://neodb.social/api/${type}/${id},现在可以使用 https://neodb.kirbyrun.com/api/${type}/${id} 来请求数据了。
举一反三,你还将可以用来代理其他被墙的地址。