JSONP считается устаревшим методом передачи данных, потому что имеет ряд недостатков и небезопасен. 12
Некоторые проблемы JSONP:
- Отсутствие контроля над запросом. 1 Например, нет нормального способа получить код ошибки. 1 Для контроля запроса приходится использовать таймеры. 1
- Невозможность использования методов HTTP, отличных от GET. 3
- Риск безопасности. 12 Поскольку JSONP использует скрипт-теги, вызовы по сути открыты миру. 2 Если удалённый сайт имеет уязвимости, которые позволяют выполнить Javascript-инъекции, то исходный сайт также может быть затронут ими. 2
Для выполнения кросс-доменных запросов сегодня рекомендуют использовать CORS (Cross-Origin Resource Sharing). 1 JSONP всё ещё полезен для поддержки старых браузеров, но с точки зрения безопасности CORS считается лучшим выбором. 1