Sencha Touch uygulamasına sahibim. Kullandığım mağazalardan biri ajax proxy ve json okuyucu kullanıyor.JSON yanıtında geçersiz karakterler
"description": "Each of the levels requires logic, skill, and brute force to crush the enemy.
"
: dönem ve bitiş alıntı arasına, burada ikinci dizede iki kez
http://www.fileformat.info/info/unicode/char/2028/index.htm
görünmez olsa da, karakter oluşur: JSON benim sinatra app dönen dizeleri bazıları zaman zaman bu karakteri içeren
Kopyalamayı ve yapıştırmayı deneyin "Her seviye, düşmanı ezmek için mantık, beceri ve kaba kuvvet gerektirir." Javascript konsolunuza! Bir dize olarak ayrıştırılmayacak ve SyntaxError: Unexpected token ILLEGAL
ile başarısız.
Bu, JSON yanıtının başarısız olmasına neden olur. Uzun zamandır bunun üzerine takıldım! Baska öneri?
Neden sadece sunucu tarafında çıkış JSON dizesinden kötü karakteri kaldırmak? –
@MaratTanalin Şu an bakıyorum ama yakın zamana kadar sunucuya erişimim olmadı. Sanırım müşteri tarafı çözümü yok mu? – nnyby
Dize yasadışı JavaScript hazırlayıcısıysa (örneğinizle ilgili emin değilsiniz, ancak, örneğin, JS literallerinde izin verilmeyen satır beslemelerine izin verilmiyorsa), istemci tarafı çözümünün olması olası değildir. Yine de JSON Ajax yanıtını JSON yerine _text_ olarak almayı deneyebilir, ancak dizeden istenmeyen karakteri filtreleyebilir ve ardından filtrelenmiş dizeyi JSON dizesi olarak ayrıştırabilirsiniz. Ne yazık ki bu bir geçici çözüm. JSON dizelerinizdeki yasadışı karakterin özel niteliğini bulmak ve nedenini çözmek daha iyi olacaktır. –