J'ai un fichier JSON dans un dossier de contenu dans mon projet asp.net:
<projectName>
\Content
NBCCJr.json
... et le code pour y accéder:
$.getJSON('~/Content/NBCCJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
... mais rien ne se passe lorsque le code est appelé; la console du navigateur indique "Échec de chargement de la ressource: le serveur a répondu avec un statut 404 (Introuvable)"
Pourquoi n'est-il pas trouvé? "Tilde whack filename" n'est-il pas la bonne route vers le fichier?
J'ai aussi essayé avec les "coups" à l'envers:
$.getJSON('~\Content\NBCCJr.json', function (data) {
... et a obtenu le même résultat ("Impossible de charger la ressource: le serveur a répondu avec un statut de 404 (Introuvable)")
Ensuite, je l'ai essayé sans un coup sec comme suit:
$.getJSON('Content/NBCCJr.json', function (data) {
... et je reçois ce message ambigu dans la console:
*GET http://localhost:9702/Content/NBCCJr.json 404 (Not Found) jquery.js:8724
XHR finished loading: "http://localhost:9702/Content/NBCCJr.json".*
Donc, il n'a pas été trouvé et encore chargé de toute façon?
Lorsque j'ai tenté de naviguer dans le fichier dans le navigateur en modifiant:
http://localhost:9702/Default.cshtml
...à:
http://localhost:9702/Content/NBCCJr.json
J'ai reçu un message informatif WSOD de Vint Cerf, Tim Berners-Lee et/ou Al Gore disant:
Erreur HTTP 404.3 - Non trouvée La page que vous demandez ne peut pas être servie en raison de la configuration de l'extension. Si la page est un script, ajoutez un gestionnaire. Si le fichier doit être téléchargé, ajoutez une carte MIME.
Grâce à JAM, cela fonctionne maintenant.
J'ai dû ajouter ceci à Web.Config:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
Avez-vous essayé d'enlever le ~
?
Un péché:
$.getJSON('/Content/dumboJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
Pour permettre à IIS de servir des fichiers JSON, essayez d'ajouter ceci à votre fichier web.config:
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
Allez dans IIS, sélectionnez votre application et recherchez les types MIME
Cliquez sur Ajouter dans le panneau de droite
Extension de nom de fichier = .json
Type MIME = application/json
Après avoir ajouté . Json , tapez le type dans les types MIME , Redémarrez IIS et essayez d'accéder au fichier json
Allez sur web.config de cette application et ajoutez-y ces lignes
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
Essayez de placer le fichier * .json dans WebRoot et non dans un sous-dossier. Et puis référence comme:
$.getJSON('NBCCJr.json', function (data) {
Cela nécessite bien sûr l'inclusion et l'instanciation précédentes de l'objet système jQuery à partir de: jquery.min.js ou de la structure JSON à partir de: json2-1.0.min.js
J'ai changé .json en .txt et la requête fonctionne bien. Je ne suis pas sûr de la conséquence que peut causer le fichier .txt.