JSON跨域请求

【服务器端】

一、SpringMVC:

@RequestMapping(value = "/waitReceiveCouponCount")
	@ResponseBody
	public String waitReceiveCouponCount(String sn, String callback) {
		int count = couponService.findWaitReceiveList(memberService.findBySn(sn)).size();
		return callback + "("+count+")";
	}
【客户端】

第一种:

$.getJSON("http://www.xx.com/xx/member/waitReceiveCouponCount.jhtml?sn=123456&callback=?", function(data) {
			alert(data);
	    })
第二种:
$.ajax({
            type : "get",
            url : "http://www.xx.com/xx/member/waitReceiveCouponCount.jhtml?sn=123456",
            dataType : "jsonp",
            jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(默认为:callback)
            success : function(json){
                alert(json);
            }
        });


--------------------------------------------------------------已过时------------------------------------------------------------

二.Struts2 实现方式

<action name="*" class="accessAction" method="{1}">
			<result name="queryMenu" type="json">
				<param name="root">accessVO.menuList</param>
				<param name="callbackParameter">callback</param> 
			</result>
		</action>

三.Servlet方式

public void doGet(HttpServletRequest req, HttpServletResponse resp) 
            throws ServletException, IOException {
          String jsonData = getDataAsJson(req.getParameter("symbol"));
          String output = req.getParameter("callback") + "(" + jsonData + ");";
          resp.setContentType("text/javascript");          
          PrintWriter out = resp.getWriter();
          out.println(output);
          // prints: jsonp1232617941775({"symbol" : "IBM", "price" : "91.42"});
    }


【客户端】

 <script>
 //1.$.ajax({});
   $.ajax({   
		url: "http://ming.skymis.com/access/queryMenu",    
		dataType: 'jsonp',    
		jsonp:'callback',     //测试时,dataType必须加上,jsonp可加可不加。不过最好还是加上
		success: function(data) { 
			alert(data[0].name);
		}
	});
//2.$.getJSON({});
	jQuery.getJSON("http://ming.skymis.com/access/queryMenu?callback=?", function(data) {
       alert(data[0].name);
    });
 </script>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值