将 curl 转换为 JavaScript

curl2code 使用原生 fetch API 将 curl 命令转换为 JavaScript 代码。一切都通过 WebAssembly 在您的浏览器本地运行,以确保完全的隐私。如果您需要服务器端 Node.js 代码,请尝试我们的 curl 转 Node.js 转换器。如需类型安全,请查看 curl 转 TypeScript 转换器。下方是常见 HTTP 模式的实用示例。

如何从浏览器复制 curl

  1. 1

    打开开发者工具

    F12Ctrl+Shift+I 打开浏览器开发者工具。

  2. 2

    进入 Network 标签页

    点击 Network (网络) 标签页,并执行触发 HTTP 请求的操作。

  3. 3

    复制为 cURL

    右键点击请求 → Copy (复制) → Copy as cURL (复制为 cURL)。然后将其粘贴到上方。

常见问题解答

什么是 Fetch API?

Fetch API 是内置于所有现代浏览器中、基于 Promise 的 HTTP 请求接口。它取代了旧的 XMLHttpRequest,提供了更简洁、更强大的 API。Fetch 支持流、请求/响应对象、CORS,并能自然地与 async/await 集成。无需安装——它是全局可用的。curl2code 使用 Fetch 作为 JavaScript 转换的默认输出。

Fetch vs XMLHttpRequest vs jQuery.ajax —— 我应该使用哪一个?

Fetch 是现代标准——新项目请使用它。XMLHttpRequest 是旧版产物,但仍随处可用且原生支持进度事件。如果项目中已包含 jQuery,jQuery.ajax 会增加便利性。对于服务端 JavaScript,请参阅我们的 curl 转 Node.js 转换器。如需类型安全,请尝试 curl 转 TypeScript

如何使用 Fetch 处理身份验证?

Authorization 选项中传递 headers 请求头:fetch(url, { headers: { "Authorization": "Bearer token" } })。对于 Basic 认证,使用 btoa(user + ':' + pass) 对凭据进行编码。curl2code 会自动检测 -u-H 'Authorization: ...' 标志。

如何使用 Fetch 发送多部分表单数据?

创建一个 FormData 对象并将其作为 body 传递:fetch(url, { method: "POST", body: formData })。不要手动设置 Content-Type —— 浏览器会自动添加多部分边界(multipart boundary)。curl2code 会将 -F 标志转换为 FormData。

如何使用 Fetch 处理错误?

Fetch 仅在网络失败时拒绝(reject),而不会在 HTTP 错误时拒绝。在读取 body 之前,务必检查 response.okresponse.status。将调用包装在带有 try/catchasync/await 中,以便在一个地方处理网络和解析错误。

如何对 Fetch 使用 async/await?

Fetch 返回一个 Promise,因此请使用 const response = await fetch(url),然后执行 const data = await response.json()。将其包装在 try/catch 块中进行错误处理。这比 .then() 链更简洁,是现代 JavaScript 推荐的模式。

如何为 Fetch 请求设置超时?

使用 AbortController:创建一个控制器,将 { signal: controller.signal } 传递给 fetch,并在 controller.abort() 延迟后调用 setTimeout。现代浏览器还支持 AbortSignal.timeout(5000) 这种更简单的单行写法。curl 的 --max-time 对应此模式。

如何使用 Fetch 处理 CORS 问题?

CORS 是由浏览器强制执行的,而不是 Fetch 本身。设置 mode: 'cors'(默认值)并确保服务器发送正确的 Access-Control-Allow-Origin 响应头。对于凭据(Cookie),添加 credentials: 'include'。CORS 不适用于服务端代码——相关内容请参阅我们的 curl 转 Node.js 转换器

如何在 JavaScript 中发送带有 JSON 正文的 POST 请求?

使用 curl2code 将类似于 curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL 的 curl POST 命令转换为 JavaScript。生成的代码使用 fetch(url, { method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'} })。curl2code 会自动检测带有 JSON 内容的 -d/--data 标志,并在 fetch 代码中设置相应的 Content-Type 请求头。

如何在 JavaScript 中添加 Bearer 令牌授权?

curl -H "Authorization: Bearer YOUR_TOKEN" URL 传递给 curl2code,它会生成带有认证请求头的 fetch 代码:headers: { 'Authorization': 'Bearer YOUR_TOKEN' }。curl2code 会从 -H "Authorization: Bearer ..."--oauth2-bearer 标志中检测 Bearer 令牌。对于 Basic auth,请使用 -u user:pass

如何在 JavaScript 中设置 Content-Type 请求头?

curl2code 将 curl -H "Content-Type: application/json" URL 转换为带有正确请求头的 fetch 代码:headers: { 'Content-Type': 'application/json' }。对于 -d 数据,curl 默认使用 application/x-www-form-urlencoded;对于 -F 表单上传,它使用 multipart/form-data。curl2code 会将每一项映射到正确的 fetch API。

有用链接

curl 指南

将 curl 转换为其他语言