Este código a continuación funciona en PHP pero no en JS. ¿Puedes decirme porque? ¿Cómo puedo hacer que funcione la versión JS pura?
async function cccrFlow() { response = await fetch('assets/club_mems.json'); club_mems = []; club_mems = await response.json(); // DOESN"T WORK } function cccrFlow() { club_mems = <?php include('assets/club_mems.json');?>; // WORKS PERFECTLY } [{"Name":"Ahmedistan, Jamshed","clubEXP":"2022-09-15"},{"Name":"Anaizi, Paul N","clubEXP":"2021-01-27"},{"Name":"Anderson, Simon","clubEXP":"2022-06-30"},{"Name":"Ashes, Bob P","clubEXP":"2022-04-21"}]Cuando usas buscar, debes asegurarte de que cualquier activo/recurso que estés cargando sea de acceso público. En breve,
si usa esta URL en el navegador http://yourserver.com/assets/club_mems.json y puede ver la respuesta en el navegador, entonces su fetch/async/await funcionará (vea la captura de pantalla).
Si no desea exponer sus datos en el dominio público, deberá incluir el archivo JSON utilizando uno de los métodos de carga del módulo, es decir, import/require .
EDITAR
Para lograr esto: necesita tener algún tipo de cargador de módulos en su entorno de desarrollo. El cargador de módulos se asegurará de que una vez que cree su aplicación para el entorno de producción, su código incluya los datos JSON sin ningún problema.
Hay diferentes opciones: paquete web, bundlr, paquete, etc. Consulte sus sitios web oficiales para saber cómo configurarlos.
Una vez que configure esto, simplemente puede escribir su código:
const jsonData = require("/path/to/club_mems.json"); or import jsonData from "/path/to/club_mems.json"prueba esta solución:
function cccrFlow() { club_mems = fetch('assets/club_mems.json') .then(response => response.json()) .then(data => { console.log(data) alert(data); }) }