起因
最近做了一个在线查询ip地址和相关信息的工具,其中需要使用第三方提供的接口。如果直接在页面中调用第三方接口会触发跨域问题,这个时候就需要使用代理了,由服务器去调用第三方接口,然后再返回结果给前端页面。但由于我的博客是纯静态的没有后台,所以就准备借助Cloudflare Workers。
创建Workers
我只需要一个简单的代理,让页面不跨域,所以没有选择模板。
修改路由
部署好后就可以在浏览器地址栏里面输入 Cloudflare提供的地址进行访问。
如果直接在我们的页面中调用这个地址依然会有跨域问题。所以我们还需要修改路由,将域名与端口修改成和博客页面一致。
依次点击设置-触发器-添加路由。
修改路由和区域,需和博客域名保持一致。
修改好后就可以使用你的域名去调用这个服务。
自定义接口
做好前面的所有工作后就可以开始写自己的接口了,点击编辑代码。
将fetch函数修改成如下:
async fetch(request, env, ctx) {
// 获取请求路径
const url = new URL(request.url);
const path = url.pathname;
// 请求地址为test
if (path === '/api2/test') { // 这里前面必须加上/api2,就是你修改添加路由的时候设置的
return new Response('test');
} else {
return new Response('Error: Invalid endpoint', { status: 404 });
}
}
修改好后点击右上角的部署就会立即生效。 部署后就可以使用/test这个路径进行访问了。
如果访问的是不存在的路径,会返回 Error: Invalid endpoint。
最后感谢Cloudflare提供的这么好用的服务。
转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至[email protected]。