197

POST リクエストの content-type と datatype とは何ですか? 私がこれを持っているとしましょう:

$.ajax({
    type : "POST",
    url : /v1/user,
    datatype : "application/json",
    contentType: "text/plain",
    success : function() {

    },
    error : function(error) {

    },

contentType私たちが送信するものは何ですか?上記の例で送信するのは JSON で、受信するのはプレーン テキストですか? よくわかりません。

4

3 に答える 3

337

contentTypeは送信するデータのタイプであり、デフォルトである is とapplication/json; charset=utf-8同様に一般的なものです。application/x-www-form-urlencoded; charset=UTF-8

dataTypeは、サーバーから返されることを期待しているものです: jsonhtmltextなど。jQuery はこれを使用して、success 関数のパラメーターを設定する方法を見つけます。

次のようなものを投稿している場合:

{"name":"John Doe"}

そして戻ってくることを期待しています:

{"success":true}

次に、次のものが必要です。

var data = {"name":"John Doe"}
$.ajax({
    dataType : "json",
    contentType: "application/json; charset=utf-8",
    data : JSON.stringify(data),
    success : function(result) {
        alert(result.success); // result is an object which is created from the returned JSON
    },
});

次のことを期待している場合:

<div>SUCCESS!!!</div>

次に、次のことを行う必要があります。

var data = {"name":"John Doe"}
$.ajax({
    dataType : "html",
    contentType: "application/json; charset=utf-8",
    data : JSON.stringify(data),
    success : function(result) {
        jQuery("#someContainer").html(result); // result is the HTML text
    },
});

もう 1 つ - 投稿する場合:

name=John&age=34

次にstringify、データを削除して、次のことを行います。

var data = {"name":"John", "age": 34}
$.ajax({
    dataType : "html",
    contentType: "application/x-www-form-urlencoded; charset=UTF-8", // this is the default value, so it's optional
    data : data,
    success : function(result) {
        jQuery("#someContainer").html(result); // result is the HTML text
    },
});
于 2013-09-09T15:06:20.797 に答える
34

jQuery ドキュメントから - http://api.jquery.com/jQuery.ajax/

contentTypeサーバーにデータを送信する場合は、このコンテンツ タイプを使用します。

dataTypeサーバーから返されると予想されるデータのタイプ。何も指定されていない場合、jQuery は応答の MIME タイプに基づいて推測しようとします。

"text": プレーン テキスト文字列。

したがって、contentType を次のようにapplication/jsonし、dataType を次のようにしますtext

$.ajax({
    type : "POST",
    url : /v1/user,
    dataType : "text",
    contentType: "application/json",
    data : dataAttribute,
    success : function() {

    },
    error : function(error) {

    }
});
于 2013-09-09T15:07:01.373 に答える
3

http://api.jquery.com/jQuery.ajax/を参照してください。そこには datatype と contentType についての言及があります。

どちらもサーバーへのリクエストで使用されるため、サーバーは送受信するデータの種類を認識します。

于 2013-09-09T15:06:21.357 に答える