问题标签 [cloudflare-workers]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
21 浏览

cloudflare - 如何从同源 API 获取数据?

我有一个以 json 格式返回用户信息的路由 (/user/{id})。我想在我的 index(/) 页面上显示一些用户信息。所以,在我的索引(/)处理程序中,我有

但是,问题是它挂起并超时。我猜这是因为它仍在为索引页面的请求提供服务,这也在向 /user/{id} 发出另一个请求。因此,在我看来,第二个请求似乎没有被处理,因为处理程序被第一个请求占用。有没有办法来解决这个问题?

谢谢

0 投票
1 回答
407 浏览

html - 如何使用 HTMLRewrite 更新属性?

我是 Cloudflare 工人的新手,我正在尝试了解代码。我目前正在尝试理解 HTMLRewriter API,但我很难完美地执行代码。

所以假设我有下面给出的代码。

该代码基本上以我们提到的 HTML 形式响应“事件”。现在我想在我们的 'html' 上调用 HTMLRewrite 并在返回响应之前更新一些值。我在这里有两个主要问题: 1. 我可以定位 h1 标签并更新其中的值吗?也就是说,将“Hello World”更改为其他内容?2. 如何将以下代码附加到我的程序中,以便输入是 const 'html'?

任何有关这方面的信息都非常感谢!我主要是在寻找一些关于如何在我给出的 const 'html' 上调用 HTMLRewriter 并更新 'h1' 标签的说明。

0 投票
1 回答
29 浏览

html - 如何在不同的函数中使用从函数中获得的 JSON 值?(下面的解释可能会更清楚)

所以我有一个非常普通的 eventListener 来监听传入的事件。

它转到 handleRequest,它根据 request.url 执行某些不同的任务。

handleJSON() 和 handleHTML() 是我设置的两个附加函数。我本质上想要做的是再添加一个如果条件具有基于handleJSON()响应的条件,即如果jsonResult = [somevalidvalue]运行handleHMTL()否则响应“你还没有访问/ [一些-链接]呢。

所以总而言之,如果我们去 [some-domain-name] 它应该用句子来回应。然后,一旦我们访问 /[some-link],我们就会在 jsonResult 中获得某种值,如果我们返回 [some-domain-name],它应该会收到来自 handleHTML() 的响应。另外,如果可能的话,我想知道如何将 jsonResult 中的值传递给我们的 handleHTML() 函数。这是 jsonResult 中的结果。

如果信息听起来太长且过于冗长,我很抱歉。我以前没有使用过 Cloudflare 的 worker,我一直在试图弄清楚什么东西在哪里,我能用它做什么,不能做什么。谢谢你!

0 投票
1 回答
593 浏览

http-headers - NuxtJS 内容安全策略

如果不包括脚本和样式的 unsafe-inline,则无法应用内容安全策略。NuxtJS 在构建时生成内联样式和脚本。

由于我的应用程序是静态的,因此 NuxtJS 的默认配置不起作用,因为它需要服务器端渲染来实现这一点。我还没有找到一种方法将 nonce 注入构建过程来解决这个问题。

我当前的设置是将安全 HTTP 标头应用于域,该域使用不接触应用程序的 cloudflare 工作者。因此,我正在寻找如何在应用程序和边缘工作者之间集成它的选项https://scotthelme.co.uk/csp-nonces-the-easy-way-with-cloudflare-workers/

在浏览我无法工作的 nuxtjs github 问题时,遇到了几种使用中间件的注入方法。

有没有人找到一种解决方案来生成不包括 unsafe-inline 的策略,直接在应用程序中或外部?

0 投票
0 回答
166 浏览

geolocation - Cloudflare Workers 地理位置

我们有一个 Cloudflare Enterprise 计划,并希望将 regionCode(状态缩写)传递到标头响应中返回给客户端。Cloudflare 请求是 req.cf.regionCode 但无论出于何种原因,当我尝试将其分配给变量时,我总是会遇到错误,因此语法有问题。

最终标题输出应该是:

州:CA(将显示来自客户端 IP 查找的州缩写,在本例中为加利福尼亚州)

0 投票
0 回答
248 浏览

javascript - Cloudflare 的 HTMLRewriter 入门

我对使用 HTMLRewriter 完全陌生,但有一些一般的 js/html 经验。我的任务相对简单,但我真的不确定 HTMLRewriter 是如何工作的。我需要做的是;

检索静态 HTML 页面 从之前部署的 JSON 响应中获取链接 使用 HTMLRewriter 将这些链接添加到静态 HTML 页面 从 Worker 返回转换后的 HTML 页面 我有 url “https://static-links-page.signalnerve。 workers.dev/”,但它不是本地的。所以我想知道的是;为了使用 HTMLRewriter 进行更改,复制/存储此静态 html 页面的正确方法是什么?

其次,我应该如何使用 HTMLRewriter 将我自己的 JSON url 数组添加到检索到的 HTML 页面中?我读到了 setInnerContent 函数,但不确定这是否是我应该使用的。

最后,我很确定这很简单,但是返回修改后的 html 页面的正确方法是什么?

同样,我的经验是一起编写 html/js,所以我几乎没有在单个 js 文件中做所有事情的经验,据我所知,这是 cloudflare 的最大好处之一。我可能会错误地处理这个问题,提出错误的问题,或者完全偏离轨道,因此非常感谢任何帮助。

到目前为止,我的代码虽然存在明显缺陷,但如下:

0 投票
1 回答
51 浏览

javascript - 如何在 JavaScript 变量值中进行外部引用?

我在 Cloudflare Workers 上设置了一个无服务器的 Google Drive 索引器,这就是我的代码的变量声明部分的样子:

我想要实现的是,使用托管在其他地方的纯文本文件(假设https://example.com/value.txt)来获取roots此代码中的值。因此,每当我编辑外部文本文件(例如添加或删除根目录时,工作人员都会自动获取这些更改。

我应该如何修改代码来做到这一点?

0 投票
1 回答
1030 浏览

javascript - 查看 Cloudflare Workers 的错误日志(错误 1101)

我正在开发一个在 Cloudflare Workers 上运行的脚本,但它抛出了一个错误:

Cloudflare 错误 1101

如果您是该网站的所有者:您应该登录 Cloudflare 并检查 app.something.workers.dev 的错误日志。

但是,登录 Cloudflare 后,我无法弄清楚在哪里可以找到日志。任何想法?

我知道我可以使用try/catch并返回错误或将其发布到其他地方,但我想知道如何使用 Cloudflare 获取它。

0 投票
1 回答
2352 浏览

javascript - 在 cloudflare 工作人员中从一个域重定向到另一个域不起作用

我需要配置与 domain1.com/test/ /模式匹配的请求由 domain2.com 应用程序提供服务。尝试如下配置。创建了一个工人,添加了代码

'''

'''

之后在域设置中,我添加了一个工作人员并指定了站点 domain1.com/test/*。但它没有用。请帮忙。使用说明https://www.cloudsavvyit.com/3660/how-to-create-a-cloudflare-worker-to-redirect-requests/

0 投票
1 回答
453 浏览

cloudflare - 访问 Cloudflare Workers 站点的压缩数据

我的 cloudflare workers 站点包含一个 React 应用程序获取的二进制数据。此二进制数据存储为 gzip 压缩,因为它压缩得非常好(我们谈论的是 20-25 倍的缩减,而未压缩它太大而无法适应 10MB KV 的限制)。我遇到的问题是工作人员返回的数据没有适当的标头:

或者如果我让工作人员添加标头,cloudflare 将加倍压缩响应。那么如何在 cloudflare KV 中存储 gzip 压缩数据,以便我可以使用正确的内容编码返回它,而无需 cloudflare 双重压缩响应?

参考

对于最小的复制:这是我正在使用的两个工作脚本。

上述工作脚本返回的二进制数据没有内容编码头,因此浏览器不会自动膨胀响应。

所以然后我尝试通过手动添加标题

响应具有正确的内容编码,但 cloudflare 会压缩响应,因此现在它在 gzip 中提供 gzip。

有没有什么办法可以让我在 cloudflare KV 中使用正确的标头提供压缩数据而不双重压缩响应?