最近准备和群里的朋友做个CMS系统,采用ExtJs搭建后台,想在页面加载完后load一点官方的文章过来(其实是我的博客)。
传统的方法是这样:
Ext.Ajax.request({
url:'',
success:function(resp,opt){
//结果处理部分略过
}
});
这样你认为是没有问题的,但是现实是js默认是不允许跨域的。所以会提示拒绝访问之类的
所以需要用到 Jquery的jsonp方式ajax。(Jquery库可以和ExtJS4.x共存)
$.post('',
{},
function(data){
//回调
//这就是普通的json了
},'jsonp');
这样的话jquery会在后面加上一个callback参数,真实的请求url是
&callback=jsonp
服务端
$callback = $_GET['callback'];
if(!empty($callback)){
$data;//这是你业务逻辑处理好的数据,一般是个数组
header('Content-Type:Application/json;charset=utf-8');//必须设置
echo $callback.'('.json_encode($data).')';
exit();
}else{
exit('Access Denied!');
}
返回结果的处理跟以前一样。
阅读(13572) | 评论(0) | 转发(0) |