标签: cloudflare-workers

Javascript Cloudflare工作脚本不允许发布请求

因此,我正在测试 cloudflare Web Worker 脚本,但我似乎无法让我的代码处理 POST 请求等。

url_without_query_strings = request.url.split('?')[0] //remove all query strings

    const response = await fetch(url_without_query_strings, {
      method: request.method,
      headers: request.headers
    })
    return response
Run Code Online (Sandbox Code Playgroud)

谁能看到我做错了什么吗?

javascript cloudflare-workers

1
推荐指数
1
解决办法
1090
查看次数

在 Cloudflare Worker 中发出一堆异步子请求并在全部完成后返回?

我想将一组字符串传递给 Cloudflare 工作线程,然后让它循环遍历这些字符串并对每个字符串执行 GET,然后将 get 返回的 JSON 添加到工作线程返回给调用者的列表中。

一些伪代码:

var listOfAjaxResults
foreach someString in arrayOfStrings
{
    //Do AJAX call using someString and add to listOfResults
}

//Wait here until all requests in the loop have completed
//Return response form worker
return listOfAjaxResults
Run Code Online (Sandbox Code Playgroud)

我知道如何根据这篇文章提出非阻塞请求。我无法解决的是:

  1. 如何仅在循环中完成所有请求后才返回
  2. 使用哪种线程安全数据结构,以便在每个请求完成时可以安全地将其结果添加到列表中。

javascript cloudflare-workers

1
推荐指数
1
解决办法
1092
查看次数

使用workers控制cloudflare源服务器

我正在尝试使用 cloudflare Worker 根据请求的 IP 动态设置源(这样我们就可以在内部提供网站的测试版本)

我有这个

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

async function handleRequest(request) {
if (request.headers.get("cf-connecting-ip") == '185.X.X.X')
{
console.log('internal request change origin');
}

const response = await fetch(request)
console.log('Got response', response)
return response
}
Run Code Online (Sandbox Code Playgroud)

我不知道要设置什么。请求对象似乎没有任何合适的参数可以更改。

谢谢

cloudflare cloudflare-workers

1
推荐指数
1
解决办法
1828
查看次数

Cloudflare Workers - SSE

有没有办法使用 cloudflare 工作人员执行服务器端事件?我只找到了一种方法,但它会在返回响应后立即停止。

    const { readable, writable } = new TransformStream();
    const response = {
      headers: new Headers({
        'Content-Type': 'text/event-stream',
        'Cache-Control': 'no-cache',
        'Access-Control-Allow-Headers': 'Origin, X-Requested-With, Content-Type, Accept',
        Connection: 'keep-alive',
      }),
      status: 101
    };

    setInterval(() => {
      const encoder = new TextEncoder();
      const writer = writable.getWriter();
      writer.write(encoder.encode(`data: hello\n\n`));
    }, 5000);

    return new Response(readable, response);
Run Code Online (Sandbox Code Playgroud)

javascript events cloudflare fetch-api cloudflare-workers

1
推荐指数
1
解决办法
2367
查看次数

将请求正文转发到另一个 url

我想知道是否有人能够帮助弄清楚如何使用 cloudflare 工作人员将帖子正文传递到另一个端点?我正在尝试将传入的请求发布到 url。

const url = 'https://webhook.site/#!/b2f75ce2-7b9e-479a-b6f0-8934a89a3f3d'
const body = {
  results: ['default data to send'],
  errors: null,
  msg: 'I sent this to the fetch',
}

/**
 * gatherResponse awaits and returns a response body as a string.
 * Use await gatherResponse(..) in an async function to get the response body
 * @param {Response} response
 */
async function gatherResponse(response) {
  const { headers } = response
  const contentType = headers.get('content-type') || ''
  if (contentType.includes('application/json')) {
    return JSON.stringify(await response.json())
  } …
Run Code Online (Sandbox Code Playgroud)

javascript cloudflare-workers

1
推荐指数
1
解决办法
1416
查看次数

HonoJS CORS 与 cloudflare 工作人员

我从 cloudflare worker 开始,并使用推荐的路由框架 HonoJS。现在,实现 cors 功能的记录方法在我的开发机器(npm run dev)上对我不起作用。我没有在生产中测试它,因为我需要它在开发环境中工作。

问题是:OPTION 请求返回 404。

如何设置全局 CORS 配置?

我的代码目前是这样的:

import { Hono } from 'hono'
import { cors } from 'hono/cors'
import { basicAuth } from 'hono/basic-auth'

import { default as register } from './register.js'

const app = new Hono()
app.use('*', cors())

const user = new Hono()
// also tried: user.use('/*', cors())
user.post('/register', register)

// Register route groups
app.route('/user', user)

export default app
Run Code Online (Sandbox Code Playgroud)

还尝试了以下 cors 调用:

cors({
    origin: 'http://localhost:5173',
    allowHeaders: ['X-Custom-Header', 'Upgrade-Insecure-Requests'],
    allowMethods: …
Run Code Online (Sandbox Code Playgroud)

serverless cloudflare-workers hono

1
推荐指数
1
解决办法
1297
查看次数

在 Cloudflare 工作代码中使用硬编码密码是否安全?

在 Cloudflare 工作代码中使用硬编码密码是否安全?

是否存在黑客/最终用户能够以某种方式访问​​此 pwd 或 myUrl 秘密 URL 的风险?

async function handleRequest(request) {
    const init = {
    headers: {
    "pwd": "xyz123"}

const response = await fetch(myURL, init);
Run Code Online (Sandbox Code Playgroud)

cloudflare-workers

1
推荐指数
1
解决办法
170
查看次数

如何将 Cloudflare 的 R2 存储桶与下一个 JS 13 api 一起使用?

我最近遇到了 Cloudflare 的 R2 存储桶。这个桶有大量的免费套餐,我想将其用于我的个人项目。但没有关于如何在下一个 JS 13 中使用它的文档。可能有一些教程展示如何在 Node js 中使用它。

那么我如何使用 Next 13 API 路由上传到 R2 存储?

cloudflare reactjs next.js cloudflare-workers

1
推荐指数
1
解决办法
1555
查看次数

调试 cloudflare 邮件通道插件

我正在尝试为我的 cloudflare 页面使用cloudflare 邮件通道插件。但即使我完全按照描述设置了所有内容,包括域锁定,我总是得到以下结果:

Could not send your email. Please try again.
Run Code Online (Sandbox Code Playgroud)

我怎样才能找出问题所在?我找不到任何日志消息或其他详细信息。

cloudflare-workers cloudflare-pages

1
推荐指数
1
解决办法
484
查看次数