Jquery-如何使$.post()使用contentType=application/json?

我注意到,在jquery中使用$.post()时,默认的contentType是application/x-www-form-urlencoded,而我的asp.net mvc代码需要contentType=application/json

(有关为什么我必须使用application/json:ASPNET MVC的问题,请参阅此问题-当该字段确实有值时,为什么ModelState.IsValid为false“x字段是必需的?”)

如何使$.post()发送contentType=application/json?我已经有了大量的$.post()函数,所以我不想改成$.ajax(),因为这会花费太多时间

如果我尝试

$.post(url、数据、函数(),“json”)

它仍然具有contentType=application/x-www-form-urlencoded。那么,如果“json”参数不将contenttype更改为json,那么它到底做了什么呢

如果我尝试

$.ajaxSetup({
contentType:“应用程序/json;字符集=utf-8”
});

这是可行的,但会影响到我拥有的每一个$.get和$.post,并导致一些崩溃

那么,是否有某种方法可以更改$.post()的行为以发送contentType=application/json

$.ajax({
url:url,
类型:“POST”,
数据:数据,
contentType:“应用程序/json;字符集=utf-8”,
数据类型:“json”,
成功:函数(){
...
}
})

请参阅:jQuery.ajax()

发表评论