fetch('http://3.108.170.236/erp/apis/login_otp.php', { method: 'POST', headers: { Accept: 'application/json', 'Content-Type': 'application/json', }, body: JSON.stringify({ monumber: '8770276989', }), }) .then(async response => { console.log('fetching api'); console.log(await response.json()); return await response.json(); }) .catch(err => { console.log('fetch error' + err); });salida de API de cartero
[{"otp_value":665354,"student_id":"3117"}]no se permite obtener el error del método 405. Estoy enviando datos en formato de publicación con texto sin formato y la respuesta de API está en json, ¿qué debo hacer para obtener el valor adecuado?
Agradeciendo a la comunidad de avance.
Realice estos cambios en su objeto de headers .
Content-Type en application/x-www-form-urlencoded .Accept en application/json . Por supuesto, debe estar seguro de que el servidor está devolviendo una respuesta JSON; de lo contrario, obtendrá un error de sintaxis al analizarlo en el lado del cliente. objeto headers :
headers: { Accept: 'application/x-www-form-urlencoded', 'Content-Type': 'application/json', } Si no está seguro de que la respuesta estará en JSON o en texto sin formato, puede verificar la propiedad content-type del encabezado de la respuesta antes de actuar en consecuencia:
(Esta es una modificación de la respuesta aquí para adaptarse a su pregunta)
... .then(response => { console.log('fetching api'); const contentType = response.headers.get("content-type"); // This is JSON type response if (contentType && contentType.indexOf("application/json") !== -1) { return response.json().then(data => { // The response was a JSON object // Process your data as a JavaScript object }); } else { return response.text().then(text => { // The response wasn't a JSON object // Process your text as a String }); } }) // All errors can be caught here. .catch((err) => console.log("The error:", err)); ...