Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/470.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 数据类型';application/json';与';json';_Javascript_Jquery_Json - Fatal编程技术网

Javascript 数据类型';application/json';与';json';

Javascript 数据类型';application/json';与';json';,javascript,jquery,json,Javascript,Jquery,Json,可能重复: 我使用的是jQuery 1.8.2,出于某种原因,'application/json'不起作用,但是'json'作为标准的jQueryajax调用的数据类型。这是个小故障吗?与版本相关的差异?或者两者之间存在着既定的差异 $(document).ready(function() { $.ajax({ type : "POST", url : '<c:url value="/url.htm" >', //dataTy

可能重复:

我使用的是jQuery 1.8.2,出于某种原因,
'application/json'
不起作用,但是
'json'
作为标准的
jQuery
ajax
调用的
数据类型。这是个小故障吗?与版本相关的差异?或者两者之间存在着既定的差异

$(document).ready(function() {
    $.ajax({
        type : "POST",
        url : '<c:url value="/url.htm" >',
        //dataType : "application/json", <-- does not work
        dataType: 'json' // <-- works
        success : function(data) {
            // do something          
        },
        error : function(data) {
            // do something else
        }
    });
});
$(文档).ready(函数(){
$.ajax({
类型:“POST”,
url:“”,

//数据类型:“application/json”,
dataType
接受json,这意味着请求需要一个
json
响应

contentType
接受
application/json
,表示请求正在发送
json
数据

您可以在请求中发送json,也可以期望json

$.ajax({
    type : "POST",
    url : url,
    contentType : "application/json", 
    dataType: 'json',
    data: JSON.stringify({some: 'data'}),
    success : function(data) {
        // do something          
    },
    error : function(data) {
        // do something else
    }
});
在这里,您发送的是json,需要的是xml

$.ajax({
    type : "POST",
    url : url,
    contentType : "application/json", 
    dataType: 'xml',
    data: JSON.stringify({xmlfile: 'file.xml'}),
    success : function(data) {
        // do something          
    },
    error : function(data) {
        // do something else
    }
});
在这里,您正在发送
x-www-form-urlencoded
(jQuery会自动为您设置),并希望返回json

$.ajax({
    type : "POST",
    url : url,
    dataType: 'json',
    data: {id: '1'},
    success : function(data) {
        // do something          
    },
    error : function(data) {
        // do something else
    }
});
contentType设置
contentType
HTTP请求头,告知服务器此请求的正文属于给定类型。
数据类型设置
Accept
头,告诉服务器这是我们想要的响应类型,例如

Accept:application/json, text/javascript, */*; q=0.01
但是,无论服务器发送何种类型的响应,jQuery仍将尝试将其解析为您在dataType字段中设置的任何类型。

“application/json”是json的正确mime类型。但是,jQuery
dataType
字段需要以下字符串之一:

"xml"
"html"
"script"
"json"
"jsonp"

根据json文档,正确的数据类型是“json”

以下是支持的选项:

  • xml
  • html
  • 剧本
  • json
  • jsonp
  • 正文

您可以发布您的代码吗?另外,请看这里:
数据类型
有一组有限的(空格分隔的)选项,并且它不是mime类型。请看,我认为在此基础上进行扩展并解释$.ajax在幕后做了什么,以便让服务器知道我们期望的内容和发送的内容,这将是非常酷的。