本文章是基于jquery的ajax來實現(xiàn)數(shù)據(jù)跨域調(diào)用,主要是利用php實時返回json數(shù)據(jù),這樣就方便的實現(xiàn)的ajax跨域數(shù)據(jù)調(diào)用了。
jquery文件我這里不提供下載了,大家可以直接到google去下載哦,可以在頁面定義一個調(diào)用方法,代碼如下:
- function getData(){
- $.getJSON("http://123.123.123.123/?callback=?",
- {
- "m":"data",// 指定php的文件名字
- "act":"getdata",// 指定php文件中的方法
- "name":"問題兒童"// 傳入的參數(shù)
- },
- function(data) {
- // 獲得返回值
- }
- });
- }
對應(yīng)鏈接下(123.123.123.123)的PHP文件,一般默認先調(diào)用index.php文件,通過index.php文件內(nèi)的方法處理后,轉(zhuǎn)到對應(yīng)的php文件,并且找到對應(yīng)的方法,執(zhí)行之。
index.php代碼如下:
- /**
- * 入口文件
- */
- $string = $_SERVER["REQUEST_URI"];// 獲取訪問的url
- $m = get_m($string);
- $file_path = "app/".$m.".php";
- define('IS_INDEX',true);// 阻止直接訪問app目錄
- require ($file_path);
- /**
- *
- * 獲取訪問php文件
- * @param string $url
- */
- function get_m($url){
- $strings = explode('m=', $url);
- $res = explode("&", $strings[1]);
- return emptyempty($res[0])?'index':$res[0];
- }
data.php代碼如下:
- /**
- * data文件
- */
- $act = !emptyempty($_GET['act']) ? $_GET['act'] : '';
- if ($act == 'getdata')
- {
- $name = "我的名字叫:".$_REQUEST['name'];
- echo $_REQUEST["callback"]."(".json_encode($name).")";
- }
成功調(diào)用后,畫面就能獲取到返回的json數(shù)據(jù)了.
總結(jié):方法簡單的很就是利用了php的json_encode()函數(shù)把用戶提交過來的數(shù)據(jù)我進行處理之后再輸出json數(shù)據(jù),jquery來接受這些數(shù)據(jù)就實現(xiàn)了我們要的跨域數(shù)據(jù)調(diào)用了。
新聞熱點
疑難解答