dataType'application / json'与'json'

时间:2012-12-06 02:10:14

标签: javascript jquery json

  

可能重复:
  $.ajax - dataType

我使用的是jQuery 1.8.2,由于某些原因,'application/json'不起作用,但'json'作为dataType与标准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
        }
    });
});

3 个答案:

答案 0 :(得分:8)

dataType接受json,这意味着请求需要json响应。

contentType需要application/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请求标头,告诉服务器该请求的主体属于给定类型。
dataType设置Accept标头,告诉服务器这是我们想要的响应类型,例如。

Accept:application/json, text/javascript, */*; q=0.01

但无论服务器发送什么类型的响应,jQuery仍会尝试将其解析为您在dataType字段中设置的任何类型。

答案 1 :(得分:1)

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

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

答案 2 :(得分:1)

根据json文档,正确的dataType是“json”。

http://api.jquery.com/jQuery.ajax/

以下是支持的选项:

  • XML
  • HTML
  • 脚本
  • JS​​ON
  • JS​​ONP
  • 文本