Hey orada, ben formu doldurduktan sonra sunucudan bir yanıt almak için Ajax kullanan bir Arap temas komut dosyası var.
Bazı apache sunucularda, jQuery.parseJSON()
diğer sunucular üzerinde mükemmel ayrıştırır aynı json bir invalid json
istisnayı atar. Bu istisna sadece krom ve IE atılır.
Json içerik php json_encode()
fonksiyonu kullanılarak kodlanmış olur. Ben json veri ile doğru başlığını gönderme ve utf-8 unicode ayarı denedim ama yardımcı olmadı.
Bu benim (uzun çünkü eğer ikinci bölümü kaldırıldı) ayrıştırmak denemek json cevaplardan biridir:
{"pageTitle":"\u062e\u0637\u0623 \u0639\u0646\u062f \u0627\u0644\u0625\u0631\u0633\u0627\u0644 !"}
Note: Bu verilerin Bu dil php en json_encode()
ile çözümlenen sonra bu gibi görünüyor, bu yüzden Arapça.
Aşağı verilen örneklerde bir istek yapmak ve kundakçı veya webkit geliştirici araçlarını kullanarak tam cevap verilere bakmak için deneyebilirsiniz. Yanıt geçer jsonlint!
Son olarak, komut dosyası aynı sürümünü kullanarak iki adresler var, kırık örnekte hatayı görmek için kromu veya IE kullanarak bunları göz deneyin.
The working example, http://namodg.com/n/
The broken example, http://www.mt-is.co.cc/my/call-me/
Updated: daha fazla açıklığa kavuşturmak için, ben eval()
içeriğini ayrıştırmak için eski kullanarak bu sorunu gidermek için manged unutmayın istiyorum, ben bu düzeltmenin başka bir sürümünü yayımladı, böyle oldu :
// Parse the JSON data
try
{
// Use jquery's default parser
data = $.parseJSON(data);
}
catch(e)
{
/*
* Fix a bug where strange unicode chars in the json data makes the jQuery
* parseJSON() throw an error (only on some servers), by using the old eval() - slower though!
*/
data = eval( "(" + data + ")" );
}
Ben onlara rapor böylece ben hala bu jQuery'nin parseJSON()
yönteminde bir hata olup olmadığını bilmek istiyorum.