json和jsonp的传输方式

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注解

原文地址:https://www.cnblogs.com/onlymate/p/4788901.html