Why is my json file not found?
I have a json file in a Content folder within my asp.net project:
<projectName>
\Content
NBCCJr.json
...and the code to access it:
$.getJSON('~/Content/NBCCJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
...but nothing happens when the code is called; the browser console says, "Failed to load resource: the server responded with a status of 404 (Not Found)"
Why is it not found? Isn't "tilde whack filename" the correct route to the file?
UPDATE
I also tried it with the "whacks" backwards:
$.getJSON('~\Content\NBCCJr.json', function (data) {
...and got the same result ("Failed to load resource: the server responded with a status of 404 (Not Found)")
UPDATE 2
Then I tried it sans a prepended whack thusly:
$.getJSON('Content/NBCCJr.json', function (data) {
...and I get this ambiguous message in the console:
*GET http://localhost:9702/Content/NBCCJr.json 404 (Not Found) jquery.js:8724
XHR finished loading: "http://localhost:9702/Content/NBCCJr.json".*
So it was not found and yet loaded anyway?
UPDATE 3
When I attempted to navigate to the file in the browser by changing:
http://localhost:9702/Default.cshtml
...to:
http://localhost:9702/Content/NBCCJr.json
I got an informative WSOD message from Vint Cerf, Tim Berners-Lee, and/or Al Gore saying:
HTTP Error 404.3 - Not Found The page you are requesting cannot be served because of the extension configuration. If the page is a script, add a handler. If the file should be downloaded, add a MIME map.
UPDATE 4
Thanks to JAM, it is now working.
I had to add this to Web.Config:
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>
Solution 1:
Have you tried removing the ~
?
As in:
$.getJSON('/Content/dumboJr.json', function (data) {
$.each(data, function(i, dataPoint) {
// Bla
});
});
)
To allow the IIS to serve JSON files, try adding this to your web.config:
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
Solution 2:
Solution is you need to add json file extension type in MIME Types
Method 1
Go to IIS, Select your application and Find MIME Types
Click on Add from Right panel
File Name Extension = .json
MIME Type = application/json
After adding .json file type in MIME Types, Restart IIS and try to access json file
Method 2
Go to web.config of that application and add this lines in it
<system.webServer>
<staticContent>
<mimeMap fileExtension=".json" mimeType="application/json" />
</staticContent>
</system.webServer>