本文章是基于jquery的ajax来实现数据跨域调用,主要是利用php实时返回json数据,这样就方便的实现的ajax跨域数据调用了。
jquery文件我这里不提供下载了,大家可以直接到google去下载哦,
可以在页面定义一个调用方法,如下:
代码如下 复制代码
function getData(){
$.getJSON("?callback=?",
{
"m":"data",// 指定php的文件名字
"act":"getdata",// 指定php文件中的方法
"name":"问题儿童"// 传入的参数
},
function(data) {
// 获得返回值
}
});
}
对应链接下(123.123.123.123)的PHP文件,一般默认先调用index.php文件,通过index.php文件内的方法处理后,转到对应的php文件,并且找到对应的方法,执行之。
index.php代码如下:
代码如下 复制代码
<?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 empty($res[0])?'index':$res[0];
}
?>
data.php代码如下:
代码如下 复制代码
<?php
/**
* data文件
*/
$act = !empty($_GET['act']) ? $_GET['act'] : '';
if ($act == 'getdata')
{
$name = "我的名字叫:".$_REQUEST['name'];
echo $_REQUEST["callback"]."(".json_encode($name).")";
}
?>
成功调用后,画面就能获取到返回的json数据了
总结:
方法简单的很就是利用了php的json_encode()函数把用户提交过来的数据我进行处理之后再输出json数据,jquery来接受这些数据就实现了我们要的跨域数据调用了。