Tengo algo como esto :
curl "https://test.api.amadeus.com/v1/security/oauth2/token" \ -H "Content-Type: application/x-www-form-urlencoded" \ -d "grant_type=client_credentials&client_id={client_id}&client_secret={client_secret}"
Quiero convertirlo en objeto xhr en Javascript. Me puedes ayudar ? Quiero decir ;
xhr.open(....) xhr.setRequestHeader(.....) xhr.send(.....)Te recomiendo que no lo hagas. :-) En su lugar, use fetch , el reemplazo estándar más nuevo para XMLHttpRequest . Solo tenga cuidado con la pistola en la API que describo aquí . Para ver cómo, veamos qué está haciendo esa llamada curl :
-H define un encabezado.
-d especifica los datos que se curl ...
...envía...en una solicitud POST al servidor HTTP, de la misma manera que lo hace un navegador cuando un usuario ha llenado un formulario HTML y presiona el botón de enviar. Esto hará que curl pase los datos al servidor utilizando el tipo de contenido application/x-www-form-urlencoded.
Entonces, mirando las formas de fetch que haces eso:
headers en el inicializador de solicitudes.body del inicializador de la solicitud.method en el inicializador de solicitud.application/x-www-form-urlencoded , lo más fácil es utilizar un objeto URLSearchParams .Entonces eso nos da:
fetch("https://test.api.amadeus.com/v1/security/oauth2/token", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded" }, body: new URLSearchParams([ ["grant_type", "client_credentials"], ["client_id", client_id], // I'm assuming you have this in a variable ["client_secret", client_secret], // Same assumption ]), }) .then(response => { if (!response.ok) { throw new Error(`HTTP error ${response.status}`); } // ...if relevant, read the response via `json` or `text` or others; // here I'll use `text` AS AN EXAMPLE return response.text(); }) .then(data => { // ...use the data... }) .catch(error => { // ...handle/report error... });