jsonp传输会解决跨域的问题
$.ajax({
async: false,
/* url: "http://127.0.0.1:8080/2015020601/background/mealshow/findNoWinner.html", */
url: "http://www.upalapp.com/2015020601/background/mealshow/findNoWinner.html",
type: "post",
dataType: 'jsonp',
//jsonp的值自定义,如果使用jsoncallback,那么服务器端,要返回一个jsoncallback的值对应的对象.
jsonp: 'jsoncallback',
//要传递的参数,没有传参时,也一定要写上
data: null,
timeout: 5000,
//返回Json类型
contentType: "application/json;utf-8",
//服务器段返回的对象包含name,data属性.
success : function(data) {
for(var i=0; i<data.length;i++){
var winner = data[i];
alert("wxName: " + winner.wxName + "awardsType: " + winner.awardsType + "uuid: "+ winner.uuid);
} },
error: function (jqXHR, textStatus, errorThrown) {
alert(textStatus);
}
});
后台
res.setContentType("text/html;charset=UTF-8");
String callbackFunName =req.getParameter("callback");//得到js函数名称
String jsonData = ListToJson.listToJson(list);
//String jsonData = "{\"state\":\"empty\"}";
res.getWriter().write(callbackFunName + "("+jsonData+")"); //返回jsonp数据
普通的ajax的json方式传输
$.ajax({
type : 'GET',
contentType : 'application/json',
/* url : "http://127.0.0.1:8080/2015020601/background/mealshow/startGame", */
url : "http://www.upalapp.com/2015020601/background/mealshow/findNoWinner.html",
processData : false,
awardsType: 1,
dataType : 'json',
success : function(data) {
for(var i=0; i<data.length;i++){
var winner = data[i];
alert("wxName: " + winner.wxName + "awardsType: " + winner.awardsType + "uuid: "+ winner.uuid);
} },
error : function() {
alert('出错了!');
}
});
后台
可以直接使用SpringMVC的@ResponseBody注解