¿Cómo puedo enviar un parámetro de formulario en una solicitud de publicación (JavaScript fetch())? por ejemplo curl --form "avatar=@me.jpg" "https://example.com/api/v4/endpoint"
Probé el siguiente código:
const form = new FormData() form.append("foo":"bar") fetch( "https://someapi.org/api", { method: 'POST', headers:form } ) .then( response => response.json() ) .then( response => { console.log(response) } ); }que no funciona para mí.
FormData debe proporcionarse como la propiedad del body de RequestInit , así:
Asegúrese de utilizar el encabezado
Content-Typecorrecto. Puede leer sobre el uso de objetosFormDataen MDN.
so-70865955.ts :
async function example () { const form = new FormData(); form.append("foo", "bar"); const apiAddress = "https://someapi.org/api"; const init: RequestInit = { method: 'POST', headers: new Headers([['content-type', 'application/x-www-form-urlencoded']]), body: form, }; const response = await fetch(apiAddress, init); const data = await response.json(); console.log(data); } // Invoke it example();En tu consola:
deno run --allow-net so-70865955.ts