Estoy tratando de obtener y alertar los registros de identificación y nombre de la base de datos utilizando la API de obtención de Javasript.
Mi problema es que no se alerta nada ya que la alerta está vacía.
Creo que hay un problema con esta línea de código
response.json().then(. Aquí está la muestra de json que devuelve la base de datos.
[{"id":"5","name":"moore Lizzy"}]aquí está la API de búsqueda Javascript
fetch("http://localhost/record/rec.php", { "method": "GET", }).then( response => { response.json().then( data => { console.log(data); data.forEach((r) => { alert(r.id); alert(r.name); }); } ) })aquí está el código php
//connect db $id = "5"; $name = "More Lizy"; $result_arr[] = array( "id" => $id, "name" => $name ); echo json_encode($result_arr);La sintaxis anterior no es del todo correcta. Está encadenando .next() directamente a response.json() , es decir, response.json().then( donde debería ser más como el siguiente (ligeramente abreviado) donde .next() está vinculado a todo el anterior next() parte que devuelve el JSON
fetch( '/record/rec.php' ) .then( r=>r.json() ) .then( json=>{ Object.keys( json ).forEach(k=>{ alert( `${k} - ${json[k]}` ) }) })Agregar retorno a la línea de código aquí también resolvió el problema. por último, también me aseguré de que no haya espacios en blanco en el código.
return response.json().then(También puedes hacerlo de esta manera:
fetch('https://jsonplaceholder.typicode.com/posts', {"method": "GET",}) .then(async (response) => { const data = await response.json(); console.log("data: ", data) })