2016-12-08 6 views
1

JQuery.ajaxは、リクエストデータ型を定義するためにcontentTypeプロパティを提供します。 また、content-typeは、headersプロパティで設定できます。'ヘッダー:{"Content-Type":XXX} "と" contentType:XXX "の違いは何ですか?

これらの違いはありますか?

$.ajax({ 
    dataType: "json", 
    url: url, 
    type: 'post', 
    data: data, 
    contentType: "application/json", 
    ... 
}); 

$.ajax({ 
    dataType: "json", 
    url: url, 
    type: 'post', 
    data: data, 
    headers: {"Content-Type": "application/json"}, 
    ... 
}); 
+1

は、あなたが送信される要求の違いを観察している他のバージョンではその異なる疑いますか? –

+1

IMOこれは同じでなければなりません。要求が行われる前に 'contentType'が' Content-Type'としてヘッダーに追加されます。 – Developer

答えて

4

jQueryのソースコードから。 contentTypeオプションの唯一の使用方法は次のとおりです。

if (s.data && s.hasContent && s.contentType !== false || options.contentType) { 
    jqXHR.setRequestHeader("Content-Type", s.contentType); 
} 

headersオプションの唯一の使用方法は次のとおりです。

for (i in s.headers) { 
    jqXHR.setRequestHeader(i, s.headers[i]); 
} 

唯一の違いはcontentTypeを使用した場合、jQueryのリクエストが持っているかどうかを確認するために、余分なチェックを行うことです実際のデータそうでない場合、content-typeヘッダーはヘッダーに追加されません。

PS:私はjQuery2.1.3のコードのみをチェックし、私は

関連する問題