J'ai le code suivant très simple qui lit juste un fichier JSON:Chemin relatif et absolu JavaScript
<html>
<head>
<meta charset="ISO-8859-1">
<title>JSON Test</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
<script>
$(function()
{
alert (1);
$.getJSON('data/sample.json', function(json)
{
alert(2);
});
});
</script>
</head>
<body>
<div id="datadiv">This is the info: </div>
</body>
</html>
je charge le fichier ci-dessus sur un serveur Tomcat et peut charger le fichier en utilisant: http://myserver.com:8080/Html5_Test_1/jsonTest.html
. Le code ci-dessus fonctionne et alert (2) est appelé. Cependant, si je change le chemin que j'utilise pour getJSON vers /Html5_Test_1/data/sample.json, cela ne fonctionnera pas.
Je pense que /Html5_Test_1/data/sample.json est le chemin absolu pour data/sample.json, et devrait fonctionner. En fait, j'ai essayé /data/sample.json, Html5_Test_1/data/sample.json, et aucun ne fonctionne. Le seul chemin qui fonctionne est data/sample.json.
Quelqu'un peut-il me dire ce qui ne va pas? Le chemin absolu /Html5_Test_1/data/sample.json fonctionnerait certainement en Java. Alors, le concept de chemin absolu et relatif est-il un peu différent en JavaScript?
Notez que le fichier est en cours d'accès en tant que fichier public sur le serveur et non en tant que fichier sur le système de fichiers local.
Avez-vous confirmé en tapant l'adresse directement dans la barre d'adresse du navigateur (http: // localhost: 8080/Html5_Test_1/data/sample.json)? Si vous regardez dans l'onglet réseau des outils de développement du navigateur, quelle URL essaie-t-il de charger? – JJJ
Oui, j'ai confirmé que le fichier peut être chargé en utilisant localhost: 8080/Html5_Test_1/data/sample.json. – user1888243
Ok, pouvez-vous vérifier le contenu réel de la requête 'GET' lorsque vous spécifiez' '/ Html5_Test_1/data/sample.json'' comme URL? Et comparez cette ligne avec celle envoyée par la requête '' data/sample.json''. – raina77ow