欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

php jsonp 返回

李中冰1年前6瀏覽0評論

PHP JSONP 返回

在現代網絡應用中,經常需要跨域訪問數據。由于瀏覽器的安全策略,只有在同源策略下才能獲取到另一個域名下的數據,所以跨域的問題就變得尤為關鍵。

其中一個解決方案是使用JSONP,它通過動態的載入一個腳本文件,來獲取需要的數據,JSONP的原理是利用script標簽沒有跨域限制的漏洞,網頁可以得到從其他來源動態產生的JSON數據。

下面通過一個簡單的例子來演示PHP JSONP的使用。

function getWeather($callback){  
//降雨量  
$weather = array('rain'=>'100mm','temp'=>'32','wind'=>'5m/s');  
$jsonStr = json_encode($weather);  
return sprintf('%s(%s)',$callback,$jsonStr);      //返回jsonp字符串  
}  
//獲得回調函數名  
$callback = isset($_GET['callback'])?$_GET['callback']:'getWeather';  
echo getWeather($callback);     //執行回調函數,返回jsonp字符串

以上代碼通過一個函數來獲取天氣信息,然后將信息轉化為JSON格式的字符串,最后使用get方式獲取callback參數,并執行回調函數。這個回調函數會在外部的JavaScript中定義,并通過script標簽進行載入。

下面是一個HTML頁面中如何使用獲取到的數據:

<!DOCTYPE html>
<html>
<head>
<title>JSONP DEMO</title>
</head>
<body>
<p id="weather"></p>
<script type="text/javascript">
function getWeather(data){       //回調函數名
var weather = "降雨量:"+data.rain+",溫度:"+data.temp+",風速:"+data.wind;
document.getElementById('weather').innerHTML = weather;     //輸出天氣信息
}
var script = document.createElement('script');
script.type = "text/javascript";
script.src = "http://example.com/weather.php?callback=getWeather";      //設置正確的地址和參數
document.getElementsByTagName('head')[0].appendChild(script);      //載入
</script>
</body>
</html>

以上代碼中,定義了一個回調函數getWeather(data),這個函數會接收到傳遞過來的天氣信息。通過創建一個script標簽,在src參數中傳遞指向getWeather.php的callback參數,來獲取到JSON字符串,最后再執行回調函數。

總結起來,PHP JSONP返回可以很方便地在不同域名之間傳遞數據,但同時也存在一些安全問題,需要謹慎使用。