JSONP (JSON with Padding
) - это технология, которая позволяет получать данные с удаленного сервера, который находится на другом домене, используя тег <script>
в HTML документе.
Принцип работы JSONP заключается в том, что клиент создает динамический тег <script>
и добавляет его в HTML документ. В URL скрипта добавляется параметр, который содержит имя функции, которую сервер вызовет после отправки данных. Например:
<script src="https://example.com/data.php?callback=processData"></script>
В этом случае сервер отправит данные в формате JSON, которые будут обернуты в вызов функции processData()
. Это позволяет клиенту получить данные с удаленного сервера, даже если он находится на другом домене, так как тег <script>
не подчиняется политике Same-Origin Policy
, которая запрещает доступ к ресурсам на других доменах.
На стороне сервера необходимо реализовать обработчик, который будет принимать параметр callback
, и обернуть данные в вызов функции с этим именем. Например, на PHP это может выглядеть так:
<?php
$data = array('name' => 'John', 'age' => 30);
$callback = $_GET['callback'];
echo $callback . '(' . json_encode($data) . ')';
?>
Таким образом, JSONP позволяет получать данные с удаленного сервера, который находится на другом домене, используя тег <script>
и обертку в вызов функции с заданным именем. Однако, JSONP имеет некоторые ограничения, такие как отсутствие надежных механизмов безопасности и невозможность использования других методов HTTP, кроме GET. Поэтому в некоторых случаях JSONP может быть заменен на более современные технологии, такие как CORS или WebSockets.