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');
}
});
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');
}
});