Java中解决前端的跨域请求问题

  在最近的分布式项目中,由于前端需要向后台请求数据,但不是同一个域名的,常用的ajax方法并不能成功调用,索然后台有数据返回,但是并不能被前端正常解析.

于是便查询知道了后台返回的数据格式的问题.不能用通常的return 串或者对象的形式来回传.

 

  在controller中,需要返回值为MappingJacksonValue,并且在MappingJacksonValue对象中添加一个回调函数属性,这样会在数据回传时将前端的JQuery的回调

函数(一般前端默认为callback)一起封装到回传的数据中,前台的jspon就会在解析时调用函数来进行回显;

 

controller代码如下:

 1     @RequestMapping("/check/{param}/{type}")
 2     @ResponseBody
 3     public MappingJacksonValue findCheckUser( @PathVariable String param,@PathVariable Integer type,String callback){
 4         
 5         boolean flag=userService.findCheckUser(param,type);
 6         
 7         MappingJacksonValue value=new MappingJacksonValue(SysResult.oK(flag));
 8         value.setJsonpFunction(callback);
 9         
10         return value;
11     }

 

 

前台jspon代码如下:

 1  $.ajax({
 2                 url : "http://sso.jt.com/user/check/"+escape(pin)+"/1? 
 3                         r=" + Math.random(),
 4                 dataType : "jsonp",
 5                 success : function(data) {
 6                     checkpin = data.data?"1":"0";
 7                     if (!data.data) {
 8                         validateSettings.succeed.run(option);
 9                         namestate = true;
10                     }else {
11                         validateSettings.error.run(option, "该用户名已占用!");
12                         namestate = false;
13                     }
14                 }
15             });

 

转载于:https://www.cnblogs.com/xQlover/p/9948475.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值