2011-02-10 14 views
15

JQuery 1.5 ile yeni güncelledim ve JSON ve birkaç eklentinin geri döndüğü tüm ajax çağrıları anında bozuldu. için dataType değiştirmeJQuery 1.5 ve yeni "Text JSON" datatype

dataType: "json" 

: my öncesi 1.5 kodunda

, ben gibi dataType belirtilen

dataType: "text json" 

Düzeltmeler sorunu ama el ile eklentileri değiştirmek istemiyorum Bu yükseltmeleri etkileyecektir.

Daha az bozulma ile bunu daha iyi idare etmenin bir yolu var mı?

+2

JSON'a geri dönerse, AJAJ çağrıları olur mu? ;) – Guffa

+0

Eklentide dataType belirtmezseniz, bunu yapmak için Global AJax ayarları nesnesini kullanın, bu sorunu çözmez. –

+0

AJAX çağrıları için veri üreten kaynak dosyalara sahipseniz, 'Content-Type: application/json' başlığını ekleyin ve tüm komut dosyalarınızı düzeltin (bu, JSON çıktılandığında her zaman yapılmalıdır). –

cevap

7

Bu sorun jQuery doğrulama eklentisinden ve ajaxSettings nesnesinin kendi kullanımı için nasıl uzandığından kaynaklanır (json çağrılarını json çağrılarına dönüştürür). umarım doğrulama yakında eklentisi resmi bir güncelleme olacak, ama bu arada, sorunu giderir burada mevcut bir yama var:

https://github.com/bigfix/jquery-validation/commit/9aa53f9241224ba349f9fe1b2c801be0f431b63b

Edit:

jQuery Validation Eklentisi, uyumlu https://github.com/jzaefferer/jquery-validation

Düzenleme 2.: jQuery Validation Eklentisi git göbeğine geçerli jQuery 1.5.1 ile 1.8, jQuery 1.5.1 (ve önceki) ile uyumlu yayınlandı:

Read bu konuda: http://bassistance.de/2011/03/25/release-validation-plugin-1-8/

indirin: http://bassistance.de/jquery-plugins/jquery-plugin-validation/

+0

Bu cevap için teşekkürler! Evet - sunucudan doğru Content-Type (uygulama/json) döndürürken bile geçerli jQuery doğrulama eklentisi (1.7) kırılmasına neden olur. –

+0

iyi cevap efendim – dagda1

3

Test edilmemiş kod, jQuery eklendikten sonra ve özel kodunuz çalışmadan önce bunu ekleyin.

jQuery.ajaxSetup({ 
    converters: { 
    "json": jQuery.parseJSON, 
    "* json": jQuery.parseJSON 
    } 
}); 
+0

Bu, önermek üzere olduğum bir şeyle aynı satırda ... Yeni jQuery sürümü, dataType, gelen verinin içerik türünden farklıysa, başka bir şekilde davranabilir; belirtilen tür olarak ayrıştırmadan önce. – Guffa

+0

Bu maalesef çalışmıyor. Fiddler'da içerik türünü kontrol ettim ve gerçekten de uygulama/json; karakter kümesi = UTF-8. – dagda1

4

Sorunu http://bugs.jquery.com/ticket/8084 giderir bu JQuery hata geldi.

$ .ajaxSetup ({ jsonp: null, jsonpCallback: boş }) JQuery komut açıklanmasından sonra aşağıdaki kodunu eklemek

sorununu giderir;