Jquery - $.post() で contentType=application/json を使用するにはどうすればいいですか? 質問する

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, data, function(), "json") 

contentType=application/x-www-form-urlencoded のままです。では、contenttype を json に変更しない場合、「json」パラメータは具体的に何をするのでしょうか?

もし私が試したら

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

これは機能しますが、私が持っているすべての $.get と $.post に影響し、一部が壊れる原因になります。

では、$.post() の動作を変更して contentType=application/json を送信する方法はあるのでしょうか?

ベストアンサー1

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

見る :jQuery.ajax()

おすすめ記事