I've been saving all my json files with .txt extension and they worked with jquery ajax calls.
When I change the extension to .json and in my jquery ajax call -- jQuery.ajax() -- I specify
the files no longer work. Why so?
Shouldn't all json files have an extension .json? I'm using IIS server.
JSON
{ "rows": [
{"row":[
{"cells": [
{"data": "Edit"},
{"data": "030194"}
]}
]},
{"row":[
{"cells": [
{"data": "Add"},
{"data": "030194"}
]}
]}
]}
jQuery
jQuery.ajax ({
type: "GET",
url: "localhost/ABC.json",
dataType: "json",
contentType: "application/json;
charset=utf-8",
cache: "false",
success: function(response){}
});
Can someone please tell me why extension .json is not working? It works if I change it to .txt
The correct extension is .json
, and the mime type is application/json
(reference: this Wikipedia page). Generally speaking, however, it should work with any extension so long as your data structure is valid and your web server is doing what it's supposed to.
IIS comes bundled with a bunch of MIME type handlers. This means when you enter a URL that ends with, for example, .png
, IIS knows that this is an image, and dispatches the appropriate response to tell the client (browser) that it's an image (so it can be rendered as such).
.json
doesn't have a MIME type handler by default. You need to set one up:
.txt
under the extension field and application/json
as the MIME typeYou're done! Try requesting the JSON file in the browser; if it renders correctly (as text), awesome. If not, you may have to tell IIS to render it as text/plain
instead.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With