-
Extra JS
Import JQuery, JSON and JQuery-JSONP.
-
Client
1) access with JSONP
function testJSONP(para1, para2) { // generate a parameter JSON object var 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 list alert("success"); }, error : function(data) { // ERROR alert("error"); } }); }
2) access with JQuery-JSONP
function testJSONP(para1, para2) { // generate a parameter JSON object var 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"); } }); }
-
Server
public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { request.setCharacterEncoding("UTF-8"); // result object Object object = new Object(); // change object to JSON String JSONObject jsonObject = JSONObject.fromObject(object); String resultStr = jsonObject.toString(); // Add callback function to JSON String String callBackFun = request.getParameter("callBackFun"); if(callBackFun != null) resultStr = callBackFun + "(" + resultStr + ")"; // return JSON to Client response.setHeader("Cache-Control", "no-cache"); response.setContentType("application/x-javascript;charset=UTF-8"); response.getWriter().print(resultStr); return null; }