ExtJs Ajax 跨域问题的解决办法(Jsonp)

最近准备和群里的朋友做个CMS系统,采用ExtJs搭建后台,想在页面加载完后load一点官方的文章过来(其实是我的博客)。

传统的方法是这样:

Ext.Ajax.request({
    url:'http://www.xialeistudio.net/index.php?s=/Index/getNews/nums/5',
    success:function(resp,opt){
        //结果处理部分略过
    }
});
这样你认为是没有问题的,但是现实是js默认是不允许跨域的。所以会提示拒绝访问之类的


所以需要用到   Jquery的jsonp方式ajax。(Jquery库可以和ExtJS4.x共存)

$.post('http://www.xialeistudio.net/index.php?s=/Index/getNews/nums/5',
{},
function(data){
   //回调
   //这就是普通的json了
},'jsonp');
这样的话jquery会在后面加上一个callback参数,真实的请求url是

http://www.xialeistudio.net/index.php?s=/Index/getNews/nums/5&callback=jsonp
服务端



<?php
    $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!');
    }
返回结果的处理跟以前一样。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值