Jquery.Ajax不使用contentType:application / json

时间:2013-11-29 01:14:26

标签: c# jquery json

我有这个简单的ajax请求。问题是contentType。当我把这个属性,东西发送,但我无法访问服务器端。当我删除它,它被发送正常(但可能不是在JSON中),我也可以访问它。我只是想知道是否有人可以帮我解决问题。

$.ajax({

    type: "POST",
    url: _common.Ajax.url,
    data: {
        action: 'faraz'
    },
    contentType: "application/json"
})
    .success(function () {
    alert('success');
})
    .fail(function () {
    alert('failed');
})
    .error(function () {
    alert('errror');
})

1 个答案:

答案 0 :(得分:1)

jQuery只会格式化data for the default of application/x-www-form-urlencoded

  

要发送到服务器的数据。 如果还不是字符串,则转换为查询字符串。 [...]

如果需要其他contentType,您还必须格式化data以匹配:

// ...
    data: JSON.stringify( { action: 'faraz' } ),
    contentType: "application/json"
// ...

注意:对于ECMAScript 3,IE8等支持,您可以包含json2.js之类的polyfill。