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?
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)")
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?
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.
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>
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>