猿问

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

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

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

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

如果我试试

$.post(url, data, function(), "json")

它仍然有contentType = application / x-www-form-urlencoded。那么如果“json”参数没有将contenttype更改为json,那究竟该做什么呢?

如果我试试

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

这有效但影响我拥有的每一个$ .get和$ .post并导致一些破坏。

那么有什么方法可以改变$ .post()的行为来发送contentType = application / json?


潇湘沐
浏览 15838回答 3
3回答

斯蒂芬大帝

我想你可能不得不这样做1.修改源代码以使$ .post始终使用JSON数据类型,因为它实际上只是预配置$.ajax调用的快捷方式要么2. 定义您自己的实用程序功能,它是$.ajax您要使用的配置的快捷方式要么3.你可以$.post function通过猴子补丁覆盖你自己的实现。示例中的JSON数据类型是指从服务器返回的数据类型,而不是发送到服务器的格式。

繁花如伊

$.ajax({   url:url,   type:"POST",   data:data,   contentType:"application/json; charset=utf-8",   dataType:"json",   success: function(){     ...   }})请参阅:jQuery.ajax()

ITMISS

最后我找到了适合我的解决方案:jQuery.ajax ({     url: myurl,     type: "POST",     data: JSON.stringify({data:"test"}),     dataType: "json",     contentType: "application/json; charset=utf-8",     success: function(){         //     }});
随时随地看视频慕课网APP
我要回答