Jawaban:
contentTypeadalah header HTTP yang dikirim ke server, menentukan format tertentu. dataTypeapakah Anda memberi tahu jQuery respons seperti apa yang diharapkan. The $.ajax()dokumentasi memiliki deskripsi penuh ini juga.
Dalam kasus tertentu, yang pertama adalah meminta respon untuk berada di UTF-8, kedua tidak peduli. Juga yang pertama memperlakukan respons sebagai objek JavaScript, yang kedua akan memperlakukannya sebagai string.
Jadi yang pertama adalah:
success: function(data) {
// get data, e.g. data.title;
}
Kedua:
success: function(data) {
alert("Here's lots of data, just a string: " + data);
}
dataType = ""?
(ps: jawaban yang diberikan oleh Nick Craver salah)
contentType menentukan format data yang dikirim ke server sebagai bagian dari permintaan (juga dapat dikirim sebagai bagian dari respons, lebih lanjut tentang itu nanti).
dataType menentukan format data yang diharapkan untuk diterima oleh klien (browser).
Keduanya tidak bisa dipertukarkan.
contentTypeadalah header yang dikirim ke server, menentukan format data (yaitu isi dari badan pesan) yang sedang ke server. Ini digunakan dengan permintaan POST dan PUT. Biasanya ketika Anda mengirim permintaan POST, badan pesan terdiri dari parameter yang diteruskan seperti:==============================
Permintaan sampel:
POST /search HTTP/1.1
Content-Type: application/x-www-form-urlencoded
<<other header>>
name=sam&age=35
==============================
Baris terakhir di atas "name = sam & age = 35" adalah isi pesan dan contentType menentukannya sebagai aplikasi / x-www-form-urlencoded karena kita meneruskan parameter formulir di badan pesan. Namun kami tidak terbatas hanya mengirim parameter, kami dapat mengirim json, xml, ... seperti ini (mengirim berbagai jenis data sangat berguna dengan layanan web RESTful):
==============================
Permintaan sampel:
POST /orders HTTP/1.1
Content-Type: application/xml
<<other header>>
<order>
<total>$199.02</total>
<date>December 22, 2008 06:56</date>
...
</order>
==============================
Jadi ContentType kali ini adalah: application / xml, karena itulah yang kami kirim. Contoh di atas menunjukkan permintaan sampel, seperti halnya respons yang dikirim dari server juga dapat memiliki header Tipe Konten yang menentukan apa yang dikirim oleh server seperti ini:
==============================
tanggapan sampel:
HTTP/1.1 201 Created
Content-Type: application/xml
<<other headers>>
<order id="233">
<link rel="self" href="http://example.com/orders/133"/>
<total>$199.02</total>
<date>December 22, 2008 06:56</date>
...
</order>
==============================
dataTypemenentukan format respons yang diharapkan. Ini terkait dengan header Terima. JQuery akan mencoba menyimpulkannya berdasarkan Content-Type dari respons.==============================
Permintaan sampel:
GET /someFolder/index.html HTTP/1.1
Host: mysite.org
Accept: application/xml
<<other headers>>
==============================
Permintaan di atas mengharapkan XML dari server.
Mengenai pertanyaan Anda,
contentType: "application/json; charset=utf-8",
dataType: "json",
Di sini Anda mengirim data json menggunakan set karakter UTF8, dan Anda mengharapkan data json kembali dari server. Sesuai dokumen JQuery untuk tipe data,
Jenis json mem-parsing file data yang diambil sebagai objek JavaScript dan mengembalikan objek yang dibuat sebagai data hasil.
Jadi yang Anda dapatkan dalam handler sukses adalah objek javascript yang tepat (JQuery mengonversi objek json untuk Anda)
sedangkan
contentType: "application/json",
dataType: "text",
Di sini Anda mengirim data json, karena Anda belum menyebutkan penyandiannya, sesuai dengan dokumen JQuery,
Jika tidak ada charset yang ditentukan, data akan dikirim ke server menggunakan charset default server; Anda harus memecahkan kode ini dengan tepat di sisi server.
dan karena tipe data ditentukan sebagai teks, yang Anda dapatkan dalam penangan sukses adalah teks biasa, sesuai dokumen untuk tipe data,
Teks dan tipe xml mengembalikan data tanpa pemrosesan. Data hanya diteruskan ke penangan sukses
sesuai dokumen :
"json": Mengevaluasi respons sebagai JSON dan mengembalikan objek JavaScript. Di jQuery 1.4 data JSON diuraikan secara ketat; JSON yang salah format ditolak dan kesalahan parse dilemparkan. (Lihat json.org untuk informasi lebih lanjut tentang pemformatan JSON yang tepat.)"text": String teks biasa.jQuery Ajax loader tidak berfungsi dengan baik ketika Anda memanggil dua API secara bersamaan. Untuk mengatasi masalah ini, Anda harus memanggil API satu per satu menggunakan isAsyncproperti di pengaturan Ajax. Anda juga perlu memastikan bahwa tidak ada kesalahan dalam pengaturan. Jika tidak, loader tidak akan berfungsi. Misalnya tipe konten yang tidak ditentukan, tipe data untuk panggilan POST / PUT / DELETE / GET.