將 curl 轉換為 JavaScript
curl2code 使用原生 fetch API 將 curl 指令轉換為 JavaScript 程式碼。所有操作皆透過 WebAssembly 在您的瀏覽器本地執行,確保完全隱私。如果您需要伺服器端 Node.js 程式碼,請嘗試我們的 curl 轉 Node.js 轉換器。若需型別安全,請參考 curl 轉 TypeScript 轉換器。下方是常見 HTTP 模式的實用範例。
如何從瀏覽器複製 curl
- 1
開啟開發者工具 (DevTools)
按下 F12 或 Ctrl+Shift+I 來開啟您的瀏覽器開發者工具。
- 2
前往網路 (Network) 分頁
點擊 Network 分頁,並執行觸發 HTTP 請求的操作。
- 3
複製為 cURL
右鍵點擊該請求 → Copy → Copy as cURL。然後將其貼在上方。
常見問題解答
什麼是 Fetch API?
Fetch API 是一個現代的、基於 Promise 的介面,內建於所有瀏覽器中,用於發送 HTTP 請求。它取代了舊有的 XMLHttpRequest,提供了更簡潔、更強大的 API。Fetch 支援串流(streaming)、請求/回應物件、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" } })。對於基本驗證,使用 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 錯誤時 reject。在讀取 body 之前,務必檢查 response.ok 或 response.status。搭配 try/catch 將呼叫封裝在 async/await 中,即可在同一處處理網路錯誤和解析錯誤。
如何將 async/await 與 Fetch 搭配使用?
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。