JSONP跨域访问

来源:互联网 发布:大学英语教材听力软件 编辑:程序博客网 时间:2024/05/22 02:22
  1. Extra JS

    Import JQuery, JSON and JQuery-JSONP.

  2. Client

    1)  access with JSONP

    function testJSONP(para1, para2) {// generate a parameter JSON objectvar para = [ {'para1' : para1,'para2' : para2} ];var URL = "www.xxx.com/xxx";$.ajax({type : "get",cache : false,url : URL + "/method.do",data : $.param(para[0]),dataType : "jsonp",jsonp : "callBackFun",contentType : "application/x-javascript;charset=UTF-8",success : function(data) {// return article JSON listalert("success");},error : function(data) {// ERRORalert("error");}});}

    2)  access with JQuery-JSONP

    function testJSONP(para1, para2) {// generate a parameter JSON objectvar para = [ {'para1' : para1,'para2' : para2} ];var URL = "www.xxx.com/xxx";$.jsonp({    url: URL + "/method.do",    data: $.param(para[0]),    callbackParameter: "callBackFun",    success: function (data) {        alert("success");    },    error: function (xOptions, textStatus) {    alert("error");    }});}

  3. Server

    public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception{request.setCharacterEncoding("UTF-8");// result objectObject object = new Object();// change object to JSON StringJSONObject jsonObject = JSONObject.fromObject(object);String resultStr = jsonObject.toString();// Add callback function to JSON StringString callBackFun = request.getParameter("callBackFun");if(callBackFun != null)resultStr = callBackFun + "(" + resultStr + ")";// return JSON to Clientresponse.setHeader("Cache-Control", "no-cache");response.setContentType("application/x-javascript;charset=UTF-8");response.getWriter().print(resultStr);return null;}

原创粉丝点击