jquery跨域访问,前后端写法

场景:跨域访问,网上有很多,但好多都是只写了前端jsonp来解决,后端代码没有写,这里记录仅仅记录一下。

前端代码:

	$.ajax({
            url:"http://"+ESURL+"/XXXXApi/groupGoodsNo",        //用作跨域的url
            dataType:"jsonp",                       			//jsonp类型
            jsonp: 'callback',                     				//后端项目返回的参数名
            data : $searchp,									//请求参数
            success:function (data) {
            	$('#dg0').datagrid('loadData',data).datagrid('loaded');
            }
        })

或者还有一种更简单的写法,我是经常这样用的

	$.getJSON("http://"+ESURL+"/XXXXApi/groupGoodsNo?callback=?",$searchp,function(data){
		  	$('#dg0').datagrid('loadData',data).datagrid('loaded');
	    });

以上两个写法jQury的前端写法就写好了。第一种参数详细点,第二种是jquery提供的一个简易写法,这里有个关键的词callback这个待会后端需要用到。

后端java代码:

		res.setCharacterEncoding("utf-8");
        String callback=req.getParameter("callback");//得到回调函数名
        res.getWriter().write(callback+"("+ JSON.toJSONString(list3)+")");

业务代码我就不写了,res和req对应的HttpServletResponse res和HttpServletRequest req,这里关键地方就是req.getParameter(“callback”)获取callback的值,然后再返回的时候将传回前端的代码括号括起来,前面加上这个获取的值。本人的前端获取结果是这样的:

jQuery111303022330776169797_1567852625815([{"intersection":24,"goods_no_B":"580564-01","goods_no_A":"LXWZ-111","Acount":191},{"intersection":1,"goods_no_B":"075441-01","goods_no_A":"BA5750-010","Acount":139},{"intersection":4,"goods_no_B":"LXWZ-111","goods_no_A":"101010","Acount":82},{"intersection":1,"goods_no_B":"804462-010","goods_no_A":"BA5954-010","Acount":79},{"intersection":1,"goods_no_B":"812654-011","goods_no_A":"AW4594","Acount":78}])

实际上你的业务数据是上述代码括号中的数组,jQuery111303022330776169797_1567852625815这个是jquery自己做的一个 标识,无须关心。
提一下怕刚用的人混淆:这里前端参数标识不一定要定义成callback(因为很多例子都是定义成这个词),可以随便定义的 。这里示例定义的是callback后端就是req.getParameter(“callback”),
如果前端定义returndata后端就是req.getParameter(“returndata”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值