Ответ
JSONP (JSON with Padding) — это старый способ обхода ограничений Same-Origin Policy для кросс-доменных запросов. Вместо прямого AJAX-запроса, JSONP использует тег <script>
, который не подпадает под эти ограничения.
Сервер возвращает данные, обернутые в функцию обратного вызова (callback), которая уже определена на клиенте. Например:
function handleResponse(data) {
console.log(data);
}
const script = document.createElement('script');
script.src = 'https://api.example.com/data?callback=handleResponse';
document.body.appendChild(script);
Сервер ответит так:
handleResponse({name: "John", age: 30});
Особенности:
- Работает только с GET-запросами
- Менее безопасен, чем CORS (риск XSS)
- Устарел, рекомендуется использовать CORS
- Зависит от доверия к серверу