Estoy tratando de cargar un archivo JSON simple en una variable y me encuentro con paredes.
Aquí está el código que uso:
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>Require test</title> <script charset="utf-8" src="require.js"></script> </head> <body> <script type="text/javascript"> root = require('./data_test_v2.json'); console.log(root); </script> </body> </html>Y este es el error que me sale:
Uncaught Error: Module name "data_test_v2.json" has not been loaded yet for context: _. Use require([]) https://requirejs.org/docs/errors.html#notloaded El archivo require.js es la última versión de RequireJS (de https://requirejs.org/docs/release/2.3.6/comments/require.js ).
Parece un problema muy básico... cualquier ayuda es bienvenida.
Puede usar RequireJS para cargar archivos JSON, pero necesitará un complemento JSON para eso.
Además, debe modificar ligeramente su código, ya que RequireJS es asíncrono. Requiere que proporcione una matriz de dependencias requeridas para cargar como primer argumento y una devolución de llamada como segundo. La devolución de llamada se ejecutará y las dependencias cargadas se inyectarán como parámetros.
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> <title>Require test</title> <script charset="utf-8" src="require.js"></script> </head> <body> <script type="text/javascript"> root = require(['./data_test_v2.json'], (json) => { console.log(json); }); console.log(root); </script> </body> </html>La función require proporcionada por Node.js cargará módulos CommonJS y JSON .
La función require proporcionada por Require.js cargará módulos AMD .
No están diseñados para ser compatibles. Tienen API completamente diferentes. Require.js no admite la carga de JSON.
Si desea cargar datos de JSON con código del lado del cliente en el navegador, use fetch , XHTMLHttpRequest o una biblioteca envuelta alrededor de uno de ellos (como axios ).