在 PHP 中使用 JSONP 返回?cái)?shù)據(jù)時(shí),需要將回調(diào)函數(shù)作為參數(shù)傳遞給服務(wù)器端腳本,并將該回調(diào)函數(shù)作為 JSON 數(shù)據(jù)的一部分返回給客戶端。下面是一個(gè)簡(jiǎn)單的示例:
<?php
// 獲取回調(diào)函數(shù)名
$callback = $_GET['callback'];
// 數(shù)據(jù)
$data = array('name' => 'john', 'age' => 30);
// 將數(shù)據(jù)轉(zhuǎn)換為 JSON 格式
$json = json_encode($data);
// 返回 JSONP 數(shù)據(jù)
echo $callback . '(' . $json . ')';
?>
在客戶端,你可以使用 JavaScript 來(lái)發(fā)起 JSONP 請(qǐng)求,并指定回調(diào)函數(shù)名,如下所示:
var url = 'http://example.com/jsonp.php?callback=myCallback';
var script = document.createElement('script');
script.src = url;
document.body.appendChild(script);
function myCallback(data) {
console.log(data);
}
在上面的示例中,服務(wù)器端返回的數(shù)據(jù)會(huì)被傳遞到 myCallback
函數(shù)中進(jìn)行處理。這樣就實(shí)現(xiàn)了在 PHP 中設(shè)置回調(diào)函數(shù)的功能。