站內搜尋

Thursday, December 20, 2018

[jQuery][好文] Cross Domain Ajax 跨網域抓取資料(JSONP) - jQuery篇

之前介紹過 Javascript 使用 JSONP 的方法 連結在此,此篇介紹 jQuery 使用 JSONP 的方法,非常簡單喔...
 jQuery AJAX cross domain

本地端JS:
原本
dataType: 'json',
改成
dataType: 'jsonp',

後端PHP:(不同網域)
原本
echo json_encode($arr);
改成
echo $_GET['callback']."(".json_encode($arr).");";

備註:
1. callback 是預設回呼函式的內建名稱,不要去改。

2. 如果要改callback這個內建函式名稱(例如要改成cb),則程式要調整成

本地端JS:
url:"https://aaa.bbb.ccc/my.php?cb=?",
dataType:'json' ,

後端PHP:(不同網域)
echo $_GET['cb']."(".json_encode($arr).");";

簡單說明一下原理,=? 是讓 jQuery 知道你現在要進行JSONP來跨網域取資料,dataType:'jsonp' 時 jQuery 會使用預設的回呼函式名稱 callback,如果要自訂名稱就要自己在網址中定義(如: cb=?)。

No comments:

Post a Comment