Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1117560
  • 博文数量: 135
  • 博客积分: 10588
  • 博客等级: 上将
  • 技术积分: 1325
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-18 11:12
文章分类

全部博文(135)

文章存档

2013年(6)

2012年(3)

2011年(11)

2010年(7)

2009年(14)

2008年(6)

2007年(42)

2006年(46)

分类: JavaScript

2013-09-23 13:54:05

最近准备和群里的朋友做个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!');
    }
返回结果的处理跟以前一样。


阅读(12141) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~