Frage

Ich habe ein Skript, das über einen Ajax-Aufruf Objekte von einem Remote-Server abruft.Der Server gibt Objekte in JSON-Notation zurück.

Allerdings gibt es in Adobe AIR eine Nutzungsbeschränkung eval() aus Sicherheitsgründen.Ich kann also Antworten vom Remote-Server erhalten, sie aber nicht wieder in JavaScript-Objekte umwandeln.Gibt es eine Problemumgehung für dieses Problem?Ich möchte JSON für meine JavaScript-Objekte verwenden, da es fast sofort verwendet werden kann.

Randnotiz :Ich verstehe zwar die Auswirkungen auf die Sicherheit, wenn das Problem erzwungen wird, aber ich werde eine schnelle Anwendungsentwicklung für einen Wettbewerb durchführen, sodass das Programm nur ein schneller Prototyp wäre und nicht für Produktionszwecke verwendet würde.Dennoch wäre es großartig, wenn es eine bessere Alternative zu dem gäbe, was ich jetzt versuche


Aktualisieren:

Dank an Das Ö Und jsight für ihre Antworten;

Eine wichtige Sache, die ich heute gelernt habe, ist, dass ich ActionScript-Bibliotheken tatsächlich nutzen kann, indem ich die verwende

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
Tag erweitert durch Adobe AIR.Kasse Theos Link für weitere Details!

War es hilfreich?

Lösung

Andere Tipps

Die aktuelle AIR-Version (v2.5) bündelt ein neueres WebKit mit nativer JSON-Unterstützung über JSON.stringify() und JSON.parse().

Hast Du Dir angesehen as3corelib?Es scheint einen AS3-Parser für JSON-Daten bereitzustellen, und ich hoffe, dass es nicht auf eval angewiesen ist (wie Sie bemerkt haben, ist eval tendenziell schlecht für die Sicherheit).Es gibt ähnliche Bibliotheken auch für Javascript, und sie sind aufgrund der Sicherheitsauswirkungen des Aufrufs von eval für (potenziell) bösartige Daten tendenziell die bevorzugte Methode zum Parsen von JSON.

JSON ist Javascript Object Notation. Wenn Sie also Javascript verwenden, sind Sie hier genau richtig!Schauen Sie sich diese Links an. Sie enthalten Beispiele für die Erstellung von Javascript-Objekten aus JSON:

http://www.hunlock.com/blogs/Mastering_JSON_(_JavaScript_Object_Notation_)

http://betterexplained.com/articles/using-json-to-exchange-data/

Wenn Sie sich für die Flex/AS3-Route entscheiden, ist as3corelib, wie jsight sagte, ein guter Ausgangspunkt.

Ich denke, dass dies möglich ist, wenn Sie eine Iframe- und Sandbox-Brücke verwenden.Sie sollten in der Lage sein, eval() für heruntergeladenen Code im Sandbox-Iframe auszuführen.

Ausschnitt aus Adobe AIR 1.1-Dokumente„...es kann bequemer sein, Inhalte in einem untergeordneten Sandbox-Frame auszuführen, damit die Inhalte ohne Einschränkungen für eval() ausgeführt werden können...“

Ein weiterer verwandter Artikel: Auf AIR aufbauen:Arbeiten mit den Sandbox Bridges

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top