JQuery and Ext 4 Cross Domain sample

Ext 部分

1 store 获取跨域数据

  Ext.define('User', {
    extend: 'Ext.data.Model',
    fields: ['id', 'name', 'age']
});

var store = Ext.create('Ext.data.Store',{
model : 'User',
autoLoad : false,
proxy : {
    type: 'jsonp',
    url: 'http://yourIPaddress:8080/root/listVersionFolder.jsp?packPath='+packPath+'&jsonpCallback='+jsonpCallback1,
    reader: {
        type: 'json',
        root: 'users'
    }
}
});

store.load();

2.Request 方法

<script>

  function jsonpCallback(datas){
     console.info("run jsonpCallback:"+datas);
     var data = datas.users;
     console.info(data);
     var store = Ext.create('Ext.data.Store', {
         autoLoad: true,
         model: 'User',
         data : data,
         proxy: {
           type: 'memory',
           reader: {
               type: 'json',
                root: 'users'
            }
        }
     });
    }
    

var packPath='com/yourcomapny/package/';
var jsonpCallback1='jsonpCallback';
 
 Ext.data.JsonP.request({
    callbackKey: 'jsonpCallback',
    url: 'http://yourIpaddress:8080/yourRoot/listVersionFolder.jsp?packPath='+packPath,
    success: function(response) {
            console.debug("run here:"+response.users);
    },
    failure: function(errString) {
            console.debug("error:"+arguments);
            console.debug("error:"+errString);
    }
});
 
 或
 Ext.data.JsonP.request(
 {
 url: 'http://yourIPaddress:8080/root/listVersionFolder.jsp?packPath='+packPath+'&jsonpCallback='+jsonpCallback1,//jsonpCallback is must
 callbackKey: jsonpCallback1,
 callback:
     function(data) {
      console.info(data);
     
      console.info('SUCCESS');
      }
 
});

</script>

Server side

<%

<%
String jsonpCallback=request.getParameter("jsonpCallback");
if (jsonpCallback != null) {
    response.setContentType("text/javascript");
} else {
    response.setContentType("application/x-json");
}
String jsonType=request.getParameter("jsonType");
String packPath = request.getParameter("packPath");
String selfPath = this.getServletContext().getRealPath("/");

String users="[{'id':1,'name':'moliqin','age':24},{'id':2,'name':'jack','age':34}]";
String result= "{users:{ "+users+"}");

if (jsonType!=null &&  jsonType.equals("common")) {
    out.print(  result );
} else {
 
    out.print(jsonpCallback+"("+result+")");
}
%>

Jquery 部分

        var jsonpCallback='jsonpCallback';
        $.ajax({
                    type : "get",
                    async: true,
                    url : 'http://yourIpaddress/root/listVersionFolder.jsp?packPath='+packPath+'&jsonpCallback='+jsonpCallback,
                    dataType : "jsonp",
                    jsonp:  'callback',
                    jsonpCallback: jsonpCallback,
                    success : function(json){
                       
                    },
                    error:function(e){
                        console.info(e);
                        alert('fail');
                    }
                });
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值