2008-08-22 30 views
5

Mam skrypt, który pobiera obiekty ze zdalnego serwera za pośrednictwem połączenia Ajax. Serwer zwraca obiekty w notacji JSON:Adobe AIR: Obsługa obiektów JSON z serwera

Jednak w środowisku Adobe AIR istnieje ograniczenie korzystania z eval() ze względów bezpieczeństwa. Mogę więc otrzymywać odpowiedzi ze zdalnego serwera, ale nie mogę ich przywrócić do obiektów JavaScript. Czy istnieje jakieś obejście tego problemu? Chciałbym użyć JSON dla moich obiektów JavaScript, ponieważ może on być użyty niemal natychmiast.

Nota boczna: Rozumiem, jakie konsekwencje dla bezpieczeństwa wiążę się z wymuszeniem tego problemu, ale będę zajmował się szybkim opracowywaniem aplikacji dla konkurencji, więc program będzie jedynie szybkim prototypem i nie będzie wykorzystywany do celów produkcyjnych. Niemniej jednak, że byłoby wspaniale, gdyby nie to lepsza alternatywa do tego, co próbuję zrobić teraz


Aktualizacja:

Dzięki Theo i jsight o odpowiedziach;

Jedną z ważnych rzeczy, których nauczyłem się dzisiaj, to fakt, że mogę faktycznie korzystać z bibliotek ActionScript przy użyciu tagu

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
rozszerzonego przez Adobe AIR. Sprawdź link Theo's, aby uzyskać więcej informacji!

Odpowiedz

2

Czy obejrzałeś as3corelib? Wydaje się dostarczać parser AS3 dla danych JSON, i mam nadzieję, że nie będzie polegać na eval (eval ma tendencję do bycia szkodliwym dla bezpieczeństwa, jak zauważyłeś). Istnieją również podobne biblioteki dla Javascriptu i są one zwykle preferowanym sposobem analizowania json ze względu na wpływ na bezpieczeństwo wywoływania eval na (potencjalnie) złych danych.

0

Myślę, że jest to możliwe, jeśli korzystasz z mostka iframe i piaskownicy. Powinieneś być w stanie uruchomić eval() na pobranego kodu w piaskownicy iframe,

Fragment Adobe AIR 1.1 Doc's ”... może być bardziej wygodne uruchamianie treści w ramce piaskownicy dziecka tak, że zawartość może być uruchamiany z żadnych ograniczeń eval() ...”

Innym Podobne artykuł: Building on AIR: Working with the Sandbox Bridges

3

Obecne wydanie AIR (v2.5) wiązki nowszą WebKit, który ma natywną obsługę JSON, poprzez JSON.stringify() i JSON .analizować().