سؤال

إذا كنت تقوم ببناء AJA~Xy app، هل هناك أي سلبيات لاستخدامه JSONP الطلبات/الردود حتى لو كنت لا تخطط لأي منها cross-domain طلبات؟

الشيء الوحيد الذي يمكنني التفكير فيه هو أن هناك بضع بايتات إضافية لمجمع رد الاتصال ...

يحرر:

وجدت هذا والذي يقترح أيضا security and error handling كمشاكل محتملة..

ليس هناك معالجة للأخطاء.ال script injection إما يعمل، أو لا.إذا كان هناك خطأ من injection, ، ستصل إلى الصفحة، وبخلاف معالج الأخطاء على مستوى النافذة (سيء، سيئ، سيئ جدًا)، يجب التأكد من أن القيمة المرجعة صالحة على server side.

لا أعتقد error handling هي مشكلة كبيرة...سيستخدم معظمنا مكتبة لإنشاء ملف JSON...إن حسن صياغة ردي لا يشكل مصدر قلق لهذا السؤال.

و الامن:

توجد مستندات على الويب يمكن أن تساعد، ولكن كفحص سريع، أود التحقق من المُحيل في server side النصي.

يبدو أن هذه مشكلة محتملة في أي نوع من الاستجابة ...بالتأكيد، لا يوجد شيء فريد من نوعه JSONP في الساحة الأمنية...؟

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

المحلول

الجانب السلبي؟إنه محدود إلى حد ما - يمكنك تشغيل طلب "GET" واستعادة بعض البرامج النصية التي تم تنفيذها.لن تتمكن من معالجة الأخطاء إذا أرسل خادمك خطأً، لذلك تحتاج إلى تغليف جميع الأخطاء في JSON أيضًا.لا يمكنك حقًا إلغاء الطلب أو إعادة محاولته.أنت تحت رحمة آراء مؤلفي المتصفح المختلفة حول السلوك "الصحيح" للسلوك الذي تم إنشاؤه ديناميكيًا <script> العلامات.تصحيح الأخطاء أكثر صعوبة إلى حد ما.

ومع ذلك، فقد استخدمته في بعض الأحيان، ولم أعاني.YMMV.

نصائح أخرى

من الممكن استرداد الأخطاء عند فشل استدعاء jsonp.

http://code.google.com/p/jquery-jsonp/

نأمل أن يساعد.

أود أن أقول إن أكبر قيد قد يكون هو الحمل الإضافي لجعل المتصفح يعرض علامة برنامج نصي للاتصال بالخادم.بالإضافة إلى ذلك، هل يعتبر JSONP حقًا AJAX لأنه لا يستخدم فعليًا كائن XMLHttpRequest؟

إليك جزء آخر قد ترغب في أخذه في الاعتبار مع JSONP..احتمالية تسرب الذاكرة..

http://neil.fraser.name/news/2009/07/27/

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