因此,我正在测试 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)
谁能看到我做错了什么吗?
我想将一组字符串传递给 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)
我知道如何根据这篇文章提出非阻塞请求。我无法解决的是:
我正在尝试使用 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 工作人员执行服务器端事件?我只找到了一种方法,但它会在返回响应后立即停止。
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) 我想知道是否有人能够帮助弄清楚如何使用 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) 我从 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) 在 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 的 R2 存储桶。这个桶有大量的免费套餐,我想将其用于我的个人项目。但没有关于如何在下一个 JS 13 中使用它的文档。可能有一些教程展示如何在 Node js 中使用它。
那么我如何使用 Next 13 API 路由上传到 R2 存储?
我正在尝试为我的 cloudflare 页面使用cloudflare 邮件通道插件。但即使我完全按照描述设置了所有内容,包括域锁定,我总是得到以下结果:
Could not send your email. Please try again.
Run Code Online (Sandbox Code Playgroud)
我怎样才能找出问题所在?我找不到任何日志消息或其他详细信息。
javascript ×4
cloudflare ×3
events ×1
fetch-api ×1
hono ×1
next.js ×1
reactjs ×1
serverless ×1