J'ai un fichier json dans un dossier Content de 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 du chargement de la ressource: le serveur a répondu avec un état 404 (non trouvé)»
Pourquoi ne le trouve-t-il pas? "Tilde whack filename" n'est-il pas la bonne route vers le fichier?
MISE À JOUR
Je l'ai aussi essayé avec les "whacks" à l'envers:
$.getJSON('~\Content\NBCCJr.json', function (data) {
... et a obtenu le même résultat (" Échec du chargement de la ressource: le serveur a répondu avec un statut de 404 (non trouvé) ")
MISE À JOUR 2
Ensuite, je l'ai essayé sans un coup de tête ajouté:
$.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 pourtant chargé quand même?
MISE À JOUR 3
Lorsque j'ai tenté d'accéder au fichier dans le navigateur en modifiant:
http://localhost:9702/Default.cshtml
...à:
http://localhost:9702/Content/NBCCJr.json
J'ai reçu un message WSOD informatif de Vint Cerf, Tim Berners-Lee et / ou Al Gore disant:
Erreur HTTP 404.3 - introuvable 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.
MISE À JOUR 4
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>
la source
Réponses:
Avez-vous essayé de supprimer 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 web.config:
<staticContent> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent>
la source
La solution est que vous devez ajouter le type d'extension de fichier json dans les types MIME
Méthode 1
Accédez à IIS, sélectionnez votre application et recherchez les types MIME
Cliquez sur Ajouter à partir du panneau de droite
Extension de nom de fichier = .json
Type MIME = application / json
Après avoir ajouté le type de fichier .json dans les types MIME , redémarrez IIS et essayez d'accéder au fichier json
Méthode 2
Accédez à web.config de cette application et ajoutez-y ces lignes
<system.webServer> <staticContent> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent> </system.webServer>
la source
Essayez de placer le fichier * .json dans le webRoot, pas dans un sous-dossier. Et puis référencez-le 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 de: jquery.min.js ou de la structure JSON de: json2-1.0.min.js
la source
J'ai changé .json en .txt et la requête fonctionne correctement. Je ne suis pas sûr de la conséquence que le .txt peut causer.
la source
Si vous utilisez
ASP.NET Core
, placez simplement le fichier,wwwroot
mais si vous utilisez unASP.NET
framework, cela permet l'extension JSON de web.config comme suit:<staticContent> <mimeMap fileExtension=".json" mimeType="application/json" /> </staticContent>
et
<location path="Content"> <system.web> <authorization> <allow users="*" /> </authorization> </system.web> </location>
la source