dataType
これは、リクエストがjson
レスポンスを期待していることを意味します。
contentType
はapplication/json
、リクエストがjson
データを送信していることを意味します
たとえば、リクエストでjsonを送信するだけでなく、期待することもできます
$.ajax({
type : "POST",
url : url,
contentType : "application/json",
dataType: 'json',
data: JSON.stringify({some: 'data'}),
success : function(data) {
// do something
},
error : function(data) {
// do something else
}
});
ここではjsonを送信し、xmlを期待しています
$.ajax({
type : "POST",
url : url,
contentType : "application/json",
dataType: 'xml',
data: JSON.stringify({xmlfile: 'file.xml'}),
success : function(data) {
// do something
},
error : function(data) {
// do something else
}
});
そしてここであなたは送信していますx-www-form-urlencoded
(jQueryはこれを自動的に設定します)、そしてjsonが戻ってくることを期待しています
$.ajax({
type : "POST",
url : url,
dataType: 'json',
data: {id: '1'},
success : function(data) {
// do something
},
error : function(data) {
// do something else
}
});
contentType は、ContentType
HTTP 要求ヘッダーを設定し、この要求の本文が指定されたタイプであることをサーバーに伝えます。
dataType は、Accept
ヘッダーを設定して、これが必要な応答のタイプであることをサーバーに伝えます。
Accept:application/json, text/javascript, */*; q=0.01
ただし、サーバーが送信する応答のタイプに関係なく、jQuery は dataType フィールドに設定したタイプとして解析を試みます。