解决 uptime-status 的跨域问题

February 19, 2021 · Blog · 5776次阅读

由于UptimeRobot的API更新而导致的跨域问题,使原本正常的服务产生异常。现在作者更新了代码,不过更麻烦一些了~


基于 Cloudflare Workers 搭建 UptimeRobot API 代理

此步可跳过,使用本人提供的地址也可 uptime-api.royoaoq.workers.dev

1.打开 CloudFlare 官网,然后进行登录,在右侧点击 Workers

2.输入可用的自定义域名,然后选择免费版

3.点击创建 Workers

4.将以下代码复制并粘贴到左侧编辑框内,点击保存并部署

  const handleRequest = async ({ request }) => {
  let url = new URL(request.url);
  let response = await fetch('https://api.uptimerobot.com' + url.pathname, request);
  response = new Response(response.body, response);
  response.headers.set('Access-Control-Allow-Origin', '*');
  response.headers.set('Access-Control-Allow-Methods', '*');
  response.headers.set('Access-Control-Allow-Credentials', 'true');
  response.headers.set('Access-Control-Allow-Headers', 'Content-Type,Access-Token');
  response.headers.set('Access-Control-Expose-Headers', '*');
  return response;
}

addEventListener('fetch', (event) => {
  event.respondWith(handleRequest(event));
});

部署新服务

1.下载 uptime-status 的1.5.1版本

2.将下载好的文件解压至网站根目录

3.进行配置 config.js 文件 (ApiDomain 填写在CloudFlare获得的域名,不加https://)

4.问题解决~


所有文件需在同一目录下,否则还是会出现跨域问题

版权属于:ROYWANG

本文链接:https://royoaoq.com/683.html

转载时须注明出处及本声明

uptime-statusuptime-status跨域CORS跨域uptime-status不可用

最后编辑于32天前

添加新评论

  1. 2021-03-01 22:32

    test

    回复

PAGES