分站的过程中,需要跨域请求数据,出现小的问题,记录一下,
test.php,在www.a.com根目录中
test.php代码:
<?php
$dal=$_GET['callback'];
$arr=array("name"=>"4nail", "age"=>20);
$jarr=json_encode($arr);
echo $dal.'('.$jarr,')';
?>
test.html在www.b.com根目录下
test.html代码如下:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
<script language="javascript" type="text/javascript" src="Scripts/jquery.min.js"></script>
<script type="text/javascript">
$(function(){
$("#test").click(function(){
$.getJSON("http://www.a.com/test.php?callback=?",function(data){
alert(data.name);
});
});
});
</script>
</head>
<body>
<div style="width:100px;height:100px;background-color:#F00" id="test">点击跨域加载</div>
</body>
</html>
在,$.getJSON()中,url参数,后面要加个,callback=?,至于callback,可以自定义其他的名称,在test.php文件中,改相应的名称,就ok啦!在输出的json 数据时,必须要加上$_GET['callback']和两个括号:echo $dal.'('.$jarr,')';z至于为什么要加,网上很多文章,我这里不再陈述!