¡Hola gente brillante!
He estado sentado horas tratando de averiguar por qué no puedo cargar un archivo JSON local usando Ajax. Apuesto a que es un error tipográfico tonto, de eso entendí algo totalmente mal. Estoy usando Node.js Express.
La ubicación de los dos archivos:
"trollytrains/views/trips.ejs" (Haciendo la solicitud ajax)
"trenes de trolebús/json/todas las paradas.json"
$.ajax( { type: "GET", url: "../json/allstops.json", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { alert('success'); }, error: function (msg) { alert("error"); alert(msg.responseText); } });
He intentado alterar la URL en todo tipo de variaciones:
./todas las paradas.json
allstops.json
json/todas las paradas
/json/todas las paradas
/json.todas las paradas.json
No importa lo que escriba, me sale un error 404.
GET http://localhost:1337/json/allstops.json 404 (Not Found) jquery.min.js:4
¿Estoy ingresando la URL incorrecta o hay algún otro problema en mi código que no he detectado? Soy muy nuevo en JSON y Javascript, así que no me sorprendería.
Realmente agradecería algunos consejos!
Mejor / J
¿Estoy ingresando la URL incorrecta o hay algún otro problema en mi código que no he detectado?
Depende de si puede acceder a la URL en la solicitud de su ejemplo:
GET http://localhost:1337/json/allstops.json 404 (Not Found) jquery.min.js:4
Vea si ve el JSON correcto cuando vaya a http://localhost:1337/json/allstops.json con el navegador. Si obtiene 404, entonces este JSON no se sirve en esta RUTA y el problema puede ser que su backend no pueda servir el JSON o que use la URL incorrecta.
Es imposible decirte si tu código backend está bien si no incluyeste ni una sola línea del código que realmente intenta servir el JSON en cuestión.
Mi suposición sería que no está sirviendo los archivos JSON.
Supongo que toda su aplicación está ubicada en el directorio trollytrains
y tiene un directorio json
dentro. Para servir lo que hay allí, debe usar algo como esto si está usando Express:
app.use('/json', express.static(path.join(__dirname, 'json')));
Para obtener más opciones para servir archivos estáticos con y sin Express, consulte esta respuesta:
Prueba esto.
$.ajax({ url: '../json/allstops.json', dataType: 'json', data: async: false, success:function() {} });