2016年2月12日 星期五

PHP教學 - 利用 jsonp 進行跨網域 ajax

上一篇我們提到使用javascript、jquery 或 jquery mobile可以進行客戶端向伺服器端做資料交換,js 就能將資料丟給 php ,但如果要跨網域呢?下列範例就說明如何進行跨網域。
客戶端 server ip 192.168.0.101
<!DOCTYPE html>
<html>
<head>
    <title>JSONP 範例</title>
    <meta charset="utf-8">
    <script src="http://apps.bdimg.com/libs/jquery/1.8.3/jquery.js"></script>   
</head>
<body>
<div id="divCustomers"></div>
<script>
$.getJSON("http://192.168.0.100/jsonp/jsonp.php?jsoncallback=?", function(data) {
   
    var html = '<ul>';
    for(var i = 0; i < data.length; i++)
    {
        html += '<li>' + data[i] + '</li>';
    }
    html += '</ul>';
   
    $('#divCustomers').html(html);
});
</script>
</body>
</html>

伺服器端 server ip 192.168.0.100
<?php
header('Content-type: application/json');
//獲取回調函數名
$jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);
//json資料
$json_data = '["customername1","customername2"]';
//輸出jsonp格式的資料
echo $jsoncallback . "(" . $json_data . ")";
?>

沒有留言:

張貼留言