Ich habe eine JSON-Datei in einem Inhaltsordner in meinem asp.net-Projekt:
<projectName>
\Content
NBCCJr.json
... und den Code, um darauf zuzugreifen:
$.getJSON('~/Content/NBCCJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
... aber nichts passiert, wenn der Code aufgerufen wird; Die Browserkonsole sagt: "Ressource konnte nicht geladen werden: Der Server hat mit dem Status 404 (Nicht gefunden) geantwortet."
Warum wird es nicht gefunden? Ist "Tilde Whack-Dateiname" nicht der richtige Weg zur Datei?
AKTUALISIEREN
Ich habe es auch mit den "Whacks" rückwärts versucht:
$.getJSON('~\Content\NBCCJr.json', function (data) {
... und das gleiche Ergebnis erhalten (" Ressource konnte nicht geladen werden: Der Server hat mit dem Status 404 geantwortet (nicht gefunden) ")
UPDATE 2
Dann habe ich es so ohne vorangestellten Schlag versucht:
$.getJSON('Content/NBCCJr.json', function (data) {
... und ich bekomme diese mehrdeutige Nachricht in der Konsole:
*GET http://localhost:9702/Content/NBCCJr.json 404 (Not Found) jquery.js:8724
XHR finished loading: "http://localhost:9702/Content/NBCCJr.json".*
Also wurde es nicht gefunden und trotzdem geladen?
UPDATE 3
Als ich versuchte, durch Ändern zu der Datei im Browser zu navigieren:
http://localhost:9702/Default.cshtml
...zu:
http://localhost:9702/Content/NBCCJr.json
Ich erhielt eine informative WSOD-Nachricht von Vint Cerf, Tim Berners-Lee und / oder Al Gore mit den Worten:
HTTP-Fehler 404.3 - Nicht gefunden Die von Ihnen angeforderte Seite kann aufgrund der Erweiterungskonfiguration nicht bereitgestellt werden. Wenn es sich bei der Seite um ein Skript handelt, fügen Sie einen Handler hinzu. Wenn die Datei heruntergeladen werden soll, fügen Sie eine MIME-Map hinzu.
UPDATE 4
Dank JAM funktioniert es jetzt.
Ich musste dies zu Web.Config hinzufügen:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
quelle
Antworten:
Haben Sie versucht, das zu entfernen
~
?Wie in:
Fügen Sie dies zu Ihrer web.config hinzu, damit der IIS JSON-Dateien bereitstellen kann:
quelle
Die Lösung besteht darin, dass Sie den Mson-Dateierweiterungstyp in MIME-Typen hinzufügen müssen
Methode 1
Gehen Sie zu IIS, wählen Sie Ihre Anwendung aus und suchen Sie nach MIME-Typen
Klicken Sie im rechten Bereich auf Hinzufügen
Dateinamenerweiterung = .json
MIME-Typ = application / json
Nach dem Hinzufügen .json Dateitypen in MIME - Typ , IIS neu starten und versuchen , dem Zugriff auf JSON - Datei
Methode 2
Gehen Sie zu web.config dieser Anwendung und fügen Sie diese Zeilen hinzu
quelle
Versuchen Sie, die * .json-Datei in den webRoot und nicht in einen Unterordner zu legen. Und dann verweisen Sie wie folgt:
Dies erfordert natürlich die vorherige Aufnahme und Instanziierung des jQuery- Systemobjekts von: jquery.min.js oder der JSON-Struktur von: json2-1.0.min.js
quelle
Ich habe .json in .txt geändert und die Anfrage funktioniert einwandfrei. Ich bin mir nicht sicher, welche Konsequenzen .txt haben kann.
quelle
Wenn Sie verwenden
ASP.NET Core
, fügen Sie einfach die Datei ein,wwwroot
aber wenn SieASP.NET
Framework verwenden, ermöglicht dies die JSON-Erweiterung von web.config wie folgt:und
quelle