Javascript 发布JSON时是否需要显式设置jQuery ajax的contentType?

Javascript 发布JSON时是否需要显式设置jQuery ajax的contentType?,javascript,jquery,ajax,json,Javascript,Jquery,Ajax,Json,我显式地设置AJAX请求的contentType,以指示JSON是通过网络发送的。然而,我的代码中contentType的应用程序似乎不一致,所有AJAX请求都正常工作 使用JSON contentType显式是必要的还是有益的,还是应该省略它?根据JQuery文档 contentType(默认值:'application/x-www-form-urlencoded; charset=UTF-8')Type:String将数据发送到服务器时,请使用 内容类型。默认值为“application/x

我显式地设置AJAX请求的contentType,以指示JSON是通过网络发送的。然而,我的代码中contentType的应用程序似乎不一致,所有AJAX请求都正常工作


使用JSON contentType显式是必要的还是有益的,还是应该省略它?

根据JQuery文档

contentType(默认值:'application/x-www-form-urlencoded; charset=UTF-8')Type:String将数据发送到服务器时,请使用 内容类型。默认值为“application/x-www-form-urlencoded; 字符集=UTF-8”,这在大多数情况下都是可以接受的。如果你明确通过 如果将内容类型设置为$.ajax(),则始终将其发送到服务器 (即使未发送数据)。W3CXMLHttpRequest规范 指示字符集始终为UTF-8;指定另一个字符集 不会强制浏览器更改编码

在实践中,我发现用$.ajax或通过

$.ajax({
    url: Settings.get('serverURL') + 'PlaylistItem/CreateMultiple',
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify(newItems)
});
根据本文,由于应用程序/x-www-form-urlencoded导致MVC操作参数中偶尔出现空值

$.ajaxSetup({
   contentType: "application/json; charset=utf-8"
});