Ваша основная функция должна вызывать что-то вроде, которое будет добавлено в качестве тега скрипта к вашей голове:
<script src="http://www.mydomain.com/file.php?callback=JSONP_callback"></script>
callback=JSONP_callback
, означает, что JSONP_callback
будет вызываться в JavaScript, который возвращает результат. Таким образом, ваш сервер знает, какую функцию вызывать, чтобы показать результат. И на вашей главной странице вы должны определить ту функцию, которая обрабатывает данные.
function JSONP_callback(response)
{
alert(response.name);
}
Затем, когда вы запускаете php или любой другой сценарий, который вы используете, вы должны вызывать функцию из вашего обратного вызова, это может быть что угодно, пока Javascript распознает это:
// Within PHP it looks like:
echo $_GET['callback'] . "(" . json_encode(array( "name" => "Niels")) . ")";
// Which results in:
JSONP_callback({ name : "Niels" });
В результате получается имя этой функции, потому что мы вызвали страницу с параметром callback=JSONP_callback
. И поскольку мы определили function JSONP_callback(result)
на нашей главной странице, скрипт выполнит эту функцию с заданными данными.
Несколько месяцев назад мне пришлось исследовать это для школы, демонстрацию, которую я сделал, может быть, вы можете использовать это как-нибудь: http://lutrasoft.nl/school/JSONP.html