Yanıtlar:
contentTypesunucuya gönderilen ve belirli bir biçimi belirten HTTP üstbilgisidir . dataTypejQuery'ye ne tür bir yanıt beklediğinizi söylüyorsunuz . $.ajax()Dokümantasyon de bu tam açıklamaları vardır.
Sizin özel durumunuzda, birincisi yanıtın içinde olmasını istemek UTF-8, ikincisi umursamıyor. Ayrıca birincisi yanıtı bir JavaScript nesnesi olarak ele alırken, ikincisi buna bir dize gibi davranır.
İlki:
success: function(data) {
// get data, e.g. data.title;
}
İkinci:
success: function(data) {
alert("Here's lots of data, just a string: " + data);
}
dataType = ""?
(ps: Nick Craver tarafından verilen cevap yanlış)
contentType, isteğin bir parçası olarak sunucuya gönderilen verilerin biçimini belirtir (yanıtın bir parçası olarak da gönderilebilir, daha sonra da).
dataType, istemci (tarayıcı) tarafından alınması beklenen veri biçimini belirtir.
Her ikisi de birbirinin yerine kullanılamaz.
contentTypesunucuya gönderilen ve sunucuya gönderilen veri biçimini (mesaj gövdesinin içeriği) belirten başlıktır. Bu POST ve PUT isteklerinde kullanılır. Genellikle POST isteği gönderirken, mesaj gövdesi aşağıdaki parametrelerden geçirilir:==============================
Örnek istek:
POST /search HTTP/1.1
Content-Type: application/x-www-form-urlencoded
<<other header>>
name=sam&age=35
==============================
"Name = sam & age = 35" öğesinin üzerindeki son satır, ileti gövdesidir ve form gövdesinde form parametrelerini ilettiğimiz için contentType bunu application / x-www-form-urlencoded olarak belirtir. Ancak sadece parametreleri göndermekle sınırlı değiliz, json, xml, ... gönderebiliriz (bunun gibi farklı veri türleri göndermek özellikle RESTful web hizmetlerinde yararlıdır):
==============================
Örnek istek:
POST /orders HTTP/1.1
Content-Type: application/xml
<<other header>>
<order>
<total>$199.02</total>
<date>December 22, 2008 06:56</date>
...
</order>
==============================
ContentType bu sefer: application / xml, çünkü gönderdiğimiz şey bu. Yukarıdaki örneklerde örnek istek gösterildi, benzer şekilde sunucudan gönderilen yanıt sunucunun şu şekilde ne gönderdiğini belirten İçerik Türü başlığına da sahip olabilir:
==============================
örnek yanıt:
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>
==============================
dataTypebeklenecek yanıt biçimini belirtir. Üstbilgiyi kabul et ile ilgilidir. JQuery, yanıtın İçerik Türü'ne göre çıkarım yapmaya çalışacaktır.==============================
Örnek istek:
GET /someFolder/index.html HTTP/1.1
Host: mysite.org
Accept: application/xml
<<other headers>>
==============================
Yukarıdaki istek sunucudan XML bekliyor.
Sorunuzla ilgili olarak,
contentType: "application/json; charset=utf-8",
dataType: "json",
Burada UTF8 karakter kümesini kullanarak json verileri gönderiyorsunuz ve sunucudan json verilerini geri bekliyoruz. DataType için JQuery belgelerine göre,
Json türü, getirilen veri dosyasını bir JavaScript nesnesi olarak ayrıştırır ve oluşturulan nesneyi sonuç verileri olarak döndürür.
Yani başarı işleyicisinde ne olsun uygun javascript nesnesi (JQuery sizin için json nesnesini dönüştürür)
buna karşılık
contentType: "application/json",
dataType: "text",
JQuery belgelerine göre kodlamadan bahsetmediğiniz için burada json verileri gönderiyorsunuz,
Herhangi bir karakter kümesi belirtilmezse, veriler sunucunun varsayılan karakter kümesi kullanılarak sunucuya iletilir; bunu sunucu tarafında uygun şekilde deşifre etmelisiniz.
ve dataType metin olarak belirtildiğinden, başarı işleyicisinde elde ettiğiniz şey dataType dokümanlarına göre düz metindir,
Metin ve xml türleri, işlem yapılmadan verileri döndürür. Veriler sadece başarı işleyicisine aktarılır
gereğince docs :
"json": Yanıtı JSON olarak değerlendirir ve bir JavaScript nesnesi döndürür. JQuery 1.4'te JSON verileri katı bir şekilde ayrıştırılır; hatalı biçimlendirilmiş JSON reddedilir ve ayrıştırma hatası atılır. (Uygun JSON biçimlendirmesi hakkında daha fazla bilgi için json.org adresine bakın.)"text": Düz metin dizesi.İki API'yi aynı anda çağırdığınızda jQuery Ajax yükleyici iyi çalışmıyor. Bu sorunu çözmek için isAsyncAjax ayarında özelliği kullanarak API'leri tek tek çağırmanız gerekir . Ayrıca ayarda herhangi bir hata olmamasını da sağlamanız gerekir. Aksi takdirde, yükleyici çalışmaz. Tanımlanmamış içerik türü, POST / PUT / DELETE / GET çağrısı için veri türü.