سؤال

لدي برنامج نصي يقوم باسترداد الكائنات من خادم بعيد من خلال مكالمة Ajax.يقوم الخادم بإرجاع الكائنات بتدوين JSON.

ومع ذلك، في Adobe AIR، هناك قيود على الاستخدام تقييم () لأسباب أمنية.لذا فأنا قادر على الحصول على ردود من الخادم البعيد، لكن لا يمكنني إعادتها إلى كائنات JavaScript.هل هناك أي حل بديل لهذه المشكلة؟أرغب في استخدام JSON لكائنات JavaScript الخاصة بي، حيث يمكن استخدامه على الفور تقريبًا.

ملاحظة جانبية :أنا أتفهم الآثار الأمنية المترتبة على فرض المشكلة، ولكنني سأقوم ببعض التطوير السريع للتطبيقات للمنافسة، لذلك سيكون البرنامج مجرد نموذج أولي سريع، ولن يتم استخدامه لأغراض الإنتاج.ومع ذلك، سيكون من الرائع لو كان هناك بديل أفضل لما أحاول القيام به الآن


تحديث:

شكرا ل ثيو و com.jsight لإجاباتهم؛

أحد الأشياء المهمة التي تعلمتها اليوم هو أنه يمكنني بالفعل الاستفادة من مكتبات ActionScript باستخدام

<script src="lib/myClasses.swf" type="application/x-shockwave-flash"></script>
تم تمديد العلامة بواسطة Adobe AIR.الدفع ثيو رابط لمزيد من التفاصيل!

هل كانت مفيدة؟

المحلول

يمكنك العثور على أ محلل JSON مكتوب بلغة JavaScript هنا (كود المصدر هنا).يمكنك أيضًا استخدام المحلل اللغوي as3corelib JSON من JavaScript وصف لكيفية الوصول إلى مكتبات ActionScript من JavaScript هنا.

نصائح أخرى

يتضمن إصدار AIR الحالي (الإصدار 2.5) حزمة WebKit أحدث تتمتع بدعم JSON الأصلي، عبر JSON.stringify() وJSON.parse().

هل نظرت إلى as3corelib؟يبدو أنه يوفر محلل AS3 لبيانات JSON، وآمل ألا يعتمد على التقييم (يميل التقييم إلى أن يكون سيئًا بالنسبة للأمان كما لاحظت).هناك أيضًا libs مماثلة لجافا سكريبت، وهي تميل إلى أن تكون الطريقة المفضلة لتحليل json نظرًا للآثار الأمنية المترتبة على استدعاء eval على البيانات (المحتملة) الشريرة.

JSON هو Javascript Object Notation، لذا إذا كنت تستخدم Javascript فأنت موجود بالفعل!قم بإلقاء نظرة على هذه الروابط، فهي تعطي أمثلة لكيفية إنشاء كائنات Javascript من JSON:

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

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

إذا قررت أن تسلك طريق Flex/AS3، فكما قال jsight، يعد as3corelib مكانًا جيدًا للبدء.

أعتقد أن هذا ممكن إذا كنت تستخدم iframe وجسر الحماية.يجب أن تكون قادرًا على تشغيل eval() على التعليمات البرمجية التي تم تنزيلها في إطار iframe المحمي،

مقتطفات من أدوبي إير 1.1 دوك"... قد يكون من الملائم أكثر تشغيل المحتوى في إطار فرعي معزول بحيث يمكن تشغيل المحتوى بدون قيود على eval()..."

مقالة أخرى ذات صلة: البناء على الهواء:العمل مع جسور Sandbox

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top