Что такое JSONP

Ответ

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
  • Зависит от доверия к серверу