Mam aplikację Sencha Touch. Jeden ze sklepów, z których korzystam, wykorzystuje serwer proxy ajax i czytnik json. Niektóre struny w JSON zwróconych z mojego Sinatra aplikacji sporadycznie zawierać ten znak: http://www.fileformat.info/info/unicode/char/2028/index.htmNiedozwolone znaki w odpowiedzi JSON
Chociaż jest to niewidoczne, występuje postać dwukrotnie w drugim ciągiem tutaj, między okresem i cytat kończący:
"description": "Each of the levels requires logic, skill, and brute force to crush the enemy.
"
Spróbuj skopiować i wkleić "Każdy z poziomów wymaga logiki, umiejętności i brutalnej siły, aby zmiażdżyć wroga." Do konsoli javascript! Nie będzie on analizowany jako ciąg znaków i nie powiedzie się z SyntaxError: Unexpected token ILLEGAL
.
Powoduje to niepowodzenie odpowiedzi JSON. Utknąłem na tym przez długi czas! Jakieś sugestie?
Dlaczego nie wystarczy zdjąć zły charakter z wyjścia JSON ciąg na stronie serwera? –
@MaratTanalin Patrzę na to teraz, ale do niedawna nie miałem dostępu do serwera. Chyba nie ma rozwiązania po stronie klienta? – nnyby
Jeśli ciąg jest niedozwolony, literał JavaScript (nie jest pewny co do twojego przypadku, ale na przykład, liniowe wiersze bez znakowania są niedozwolone w literałach JS), wtedy rozwiązanie po stronie klienta jest mało prawdopodobne. Być może jednak możesz spróbować uzyskać odpowiedź Ajaxa JSON jako _text_ zamiast JSON, następnie przefiltrować niepożądany znak z niego jako ciąg, a następnie przeanalizować filtrowany ciąg jako ciąg JSON. Niestety jest to obejście. Byłoby lepiej znaleźć specyficzny charakter nielegalnego charakteru w łańcuchach JSON i rozwiązać przyczynę. –