هل هناك أسباب لعدم استخدام JSONP لطلبات AJA~X؟
-
09-06-2019 - |
سؤال
إذا كنت تقوم ببناء 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..احتمالية تسرب الذاكرة..