zoukankan      html  css  js  c++  java
  • 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注解

  • 相关阅读:
    【OpenCV学习笔记1】OpenCV 编程简介[轉]
    latex与word比较
    【C/C++语法外功】传值&传引用&传指针
    ellen 纽奥良大学演讲
    华侨大学50年校庆校长讲话
    【专题】工业相机接口
    【C/C++参考手册】C++资源之不完全导引[轉]
    比尔盖茨_哈佛演说
    拉里.埃里森_耶鲁大学演讲
    【OpenCV学习笔记2】OpenCV 完全安装 新增VS2010+OpenCV2.1,新增VS2010+OpenCV2.3.1
  • 原文地址:https://www.cnblogs.com/onlymate/p/4788901.html
Copyright © 2011-2022 走看看