cURL to JS Fetch
Convierte un comando curl a JavaScript fetch
Acerca de cURL to JS Fetch
Convierte un comando cURL en una llamada fetch de JavaScript con await, lista para el navegador o para Node.js 18+ sin instalar ni importar paquetes. Los cuerpos JSON se envuelven en JSON.stringify, los campos -F se vuelven un objeto FormData y -u usuario:clave pasa a ser un encabezado Authorization: Basic. La conversión ocurre en tu navegador, así que los tokens del comando que pegas nunca se envían a ninguna parte.
Categoría: API.
Preguntas frecuentes
¿El código fetch necesita Node.js o algún paquete de npm?
▾
No importa ningún paquete: fetch viene integrado en los navegadores modernos y en Node.js 18 o posterior. El código usa await de nivel superior y termina con response.json(), así que ejecútalo en un módulo ES, una función async o la consola de DevTools, y cámbialo por response.text() si la API no devuelve JSON.
¿Cómo se escriben en fetch los cuerpos JSON, x-www-form-urlencoded y -F?
▾
Un cuerpo -d que es JSON válido se envuelve en JSON.stringify(), uno enviado con Content-Type: application/x-www-form-urlencoded se convierte en new URLSearchParams() y cualquier otro queda como texto plano. Los campos -F se agregan a un objeto FormData, que fetch envía como multipart/form-data; una referencia a archivo como @foto.jpg se copia como texto y no se sube.
¿Qué pasa con -u, -k y -L en el código fetch?
▾
-u usuario:clave se convierte en un encabezado Authorization: Basic cuyo valor Base64 se calcula durante la conversión. -k se descarta porque la API fetch no tiene una opción para omitir la verificación de certificados, y -L no hace falta porque fetch sigue las redirecciones por defecto.
¿Por qué el código fetch puede fallar en el navegador si el comando cURL funciona?
▾
Los navegadores aplican CORS, así que la API debe permitir el origen de tu página, y descartan en silencio los encabezados que un script no puede definir, como Cookie. Las cookies pasadas con -b tampoco se convierten: agrégalas como encabezado Cookie si ejecutas el código en Node.js, o usa credentials: 'include' para enviar las cookies propias del navegador.