JSONP跨域访问

3 篇文章 0 订阅
1 篇文章 0 订阅
  1. Extra JS

    Import JQuery, JSON and JQuery-JSONP.

  2. 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");
    	    }
    	});
    }

  3. 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;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值