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             });

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM