Chuyển đổi curl sang JavaScript
curl2code chuyển đổi các lệnh curl thành mã JavaScript bằng fetch API gốc. Mọi thứ đều chạy cục bộ trong trình duyệt của bạn thông qua WebAssembly để đảm bảo quyền riêng tư hoàn toàn. Nếu bạn cần mã Node.js phía máy chủ, hãy thử trình chuyển đổi curl sang Node.js của chúng tôi. Để đảm bảo an toàn kiểu dữ liệu, hãy kiểm tra trình chuyển đổi curl sang TypeScript. Dưới đây là các ví dụ thực tế cho các mẫu HTTP phổ biến.
Cách sao chép curl từ trình duyệt của bạn
- 1
Mở DevTools
Nhấn F12 hoặc Ctrl+Shift+I để mở công cụ dành cho nhà phát triển của trình duyệt.
- 2
Đi tới tab Network
Nhấp vào tab Network và thực hiện hành động kích hoạt yêu cầu HTTP.
- 3
Sao chép dưới dạng cURL
Nhấp chuột phải vào yêu cầu → Sao chép → Copy as cURL. Sau đó dán nó vào bên trên.
Câu hỏi thường gặp
Fetch API là gì?
Fetch API là một giao diện hiện đại, dựa trên promise được tích hợp vào tất cả các trình duyệt để thực hiện các yêu cầu HTTP. Nó thay thế XMLHttpRequest cũ bằng một API sạch sẽ và mạnh mẽ hơn. Fetch hỗ trợ streaming, các đối tượng request/response, CORS và tích hợp tự nhiên với async/await. Không cần cài đặt — nó có sẵn trên toàn cầu. curl2code sử dụng Fetch làm đầu ra mặc định cho các chuyển đổi JavaScript.
Fetch so với XMLHttpRequest so với jQuery.ajax — tôi nên sử dụng cái nào?
Fetch là tiêu chuẩn hiện đại — hãy sử dụng nó cho các dự án mới. XMLHttpRequest là di sản nhưng vẫn hoạt động ở mọi nơi và hỗ trợ các sự kiện tiến trình (progress events) một cách tự nhiên. jQuery.ajax thêm sự tiện lợi nếu jQuery đã có sẵn trong dự án của bạn. Đối với JavaScript phía máy chủ, hãy xem trình chuyển đổi curl sang Node.js của chúng tôi. Để an toàn về kiểu dữ liệu, hãy thử curl sang TypeScript.
Làm thế nào để xử lý xác thực với Fetch?
Truyền một header Authorization trong tùy chọn headers: fetch(url, { headers: { "Authorization": "Bearer token" } }). Đối với xác thực Basic, hãy mã hóa thông tin đăng nhập bằng btoa(user + ':' + pass). curl2code tự động phát hiện các cờ -u và -H 'Authorization: ...'.
Làm thế nào để gửi dữ liệu form multipart với Fetch?
Tạo một đối tượng FormData và truyền nó làm body: fetch(url, { method: "POST", body: formData }). Không thiết lập Content-Type thủ công — trình duyệt sẽ tự động thêm ranh giới (boundary) multipart. curl2code chuyển đổi các cờ -F sang FormData.
Làm thế nào để xử lý lỗi với Fetch?
Fetch chỉ từ chối (reject) khi có lỗi mạng, không phải lỗi HTTP. Luôn kiểm tra response.ok hoặc response.status trước khi đọc body. Bao bọc các lời gọi trong try/catch với async/await để xử lý cả lỗi mạng và lỗi phân tích cú pháp tại một nơi.
Làm thế nào để sử dụng async/await với Fetch?
Fetch trả về một Promise, vì vậy hãy sử dụng const response = await fetch(url) theo sau là const data = await response.json(). Bao bọc trong một khối try/catch để xử lý lỗi. Cách này sạch sẽ hơn các chuỗi .then() và là mẫu được khuyến nghị cho JavaScript hiện đại.
Làm thế nào để thiết lập timeout cho các yêu cầu Fetch?
Sử dụng AbortController: tạo một controller, truyền { signal: controller.signal } vào fetch, và gọi controller.abort() sau một khoảng thời gian chờ với setTimeout. Các trình duyệt hiện đại cũng hỗ trợ AbortSignal.timeout(5000) như một cách viết tắt đơn giản. Cờ --max-time của curl được ánh xạ theo mẫu này.
Làm thế nào để xử lý các vấn đề CORS với Fetch?
CORS được thực thi bởi trình duyệt, không phải bởi chính Fetch. Thiết lập mode: 'cors' (mặc định) và đảm bảo máy chủ gửi các header Access-Control-Allow-Origin phù hợp. Đối với thông tin xác thực (cookie), hãy thêm credentials: 'include'. CORS không áp dụng cho mã phía máy chủ — về vấn đề đó, hãy xem trình chuyển đổi curl sang Node.js của chúng tôi.
Làm thế nào để gửi một yêu cầu POST với thân JSON trong JavaScript?
Chuyển đổi một lệnh curl POST như curl -X POST -H "Content-Type: application/json" -d '{"key":"value"}' URL sang JavaScript bằng cách sử dụng curl2code. Mã được tạo sử dụng fetch(url, { method: 'POST', body: JSON.stringify(data), headers: {'Content-Type': 'application/json'} }). curl2code tự động phát hiện các cờ -d/--data với nội dung JSON và thiết lập header Content-Type phù hợp trong mã fetch.
Làm thế nào để thêm xác thực Bearer token trong JavaScript?
Cung cấp curl -H "Authorization: Bearer YOUR_TOKEN" URL cho curl2code và nó sẽ tạo mã fetch với header xác thực: headers: { 'Authorization': 'Bearer YOUR_TOKEN' }. curl2code phát hiện Bearer tokens từ cả hai cờ -H "Authorization: Bearer ..." và --oauth2-bearer. Đối với Basic auth, hãy sử dụng -u user:pass.
Làm thế nào để thiết lập header Content-Type trong JavaScript?
curl2code chuyển đổi curl -H "Content-Type: application/json" URL sang mã fetch với header chính xác: headers: { 'Content-Type': 'application/json' }. Đối với dữ liệu -d, curl mặc định là application/x-www-form-urlencoded; đối với tải lên biểu mẫu -F, nó sử dụng multipart/form-data. curl2code ánh xạ từng loại tới fetch API chính xác.