ما هو JSONP ولماذا تم إنشاؤه؟ اشرح بكلمات بسيطة مع أمثلة
مرحبًا بالجميع! أنا مطور Frontend مبتدئ وأحاول فهم موضوع الطلبات عبر النطاقات. أعرف أن هناك CORS، لكني صادفت ذكر JSONP في مشاريع قديمة وفي وثائق بعض APIs (مثل الإصدار القديم من Google Maps API).
لا أفهم تمامًا كيف يعمل. يبدو أنها طريقة لتجاوز قيود المتصفح على الطلبات إلى نطاق آخر. لكن كيف بالضبط؟ ولماذا تُستخدم كلمة "padding" في الاسم؟
لنفترض أن لدي هذا الكود في JavaScript الذي يحاول الحصول على بيانات من خادم آخر:
```javascript
// طلب fetch عادي إلى نطاق آخر
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('خطأ:', error));
```
هذا الكود لن يعمل إذا لم يقم الخادم `api.example.com` بإعداد رؤوس CORS. لكني سمعت أن JSONP يسمح بتجاوز هذا القيد دون دعم CORS على الخادم. كيف يكون ذلك ممكنًا؟ فالمتصفح يحظر الطلبات — أليس كذلك؟