我一直在保存所有带有.txt扩展名的json文件,他们使用jquery ajax调用。
当我将扩展名更改为.json并在我的jquery ajax调用中 - jQuery.ajax() - 我指定
文件不再有效。为什么这样?
不应该所有json文件都有扩展名.json吗?我正在使用IIS服务器。
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){}
});
有人可以告诉我为什么扩展.json无效吗?如果我将其更改为.txt
,它会起作用答案 0 :(得分:6)
正确的扩展名为.json
,默认类型为application/json
(参考:this Wikipedia page)。但是,一般来说,只要您的数据结构有效并且您的Web服务器正在按照预期进行操作,它就应该适用于任何扩展。
答案 1 :(得分:4)
IIS捆绑了一堆MIME类型处理程序。这意味着当您输入以.png
结尾的URL时,IIS知道这是一个图像,并调度相应的响应以告诉客户端(浏览器)它是一个图像(所以它可以这样呈现。)
.json
没有MIME类型处理程序。你需要设置一个:
.txt
放在扩展字段下,将application/json
作为MIME类型你完成了!尝试在浏览器中请求JSON文件;如果它正确呈现(作为文本),真棒。如果没有,您可能必须告诉IIS将其呈现为text/plain
。
答案 2 :(得分:0)
dataType:“json”不指定文件的类型是指定服务器将返回的数据类型。从服务器端,例如,如果您使用的是php,则必须使用函数“json_encode”返回json字符串,以便dataType接受它:“json”。