之前在开发公司的项目时就遇到了要跨域名ajax请求的,而浏览器出于安全考虑,不允许js代码进行跨域操作。
解决方法用jquery的getJSON函数,代码实例如下:
js代码:
<script type="text/javascript">
$(function(){
$.getJSON("http://www.xxx.com/login/is_login/?jsoncallback=?", function(aResult){
if(aResult.status == 1){
//处理返回的json数据
}
});
});
</script>
jsoncallback=?(关键)被替换后,会把方法名称传给服务器。服务器要接受参数jsoncallback,然后把jsoncallback的值作为JSON数据方法名称返回
php服务器端的处理代码:
public function userIsLogin(){
$status = 1;
$name = 'jod';
$id = 5;
$json = json_encode(array('status'=>$status, 'name'=>$name, 'id'=>$id));
echo $_GET['jsoncallback'].'('.$json.')';exit;
}
返回的数据注意格式为
$_GET['jsoncallback'].'('.$json.')';