多语言展示
当前在线:1392今日阅读:113今日分享:31

java实现跨域请求的两种方式

随着系统与未来月庞大,不可避免的涉及到跨域请求,这里简单介绍两种跨域请求的方式。亲测有效,前后端都有。
方法/步骤
2

function (index) { //点击确定后执行的方法体 debugger;                $.ajax({                    type : 'GET',                    url : 'http://******:8081/ldap/updateStatus',                    data : {                        id : id                    },                    dataType : 'jsonp',                    jsonp:'statuscallback',                    success : function(data) {                        debugger;                        layer.msg('处理完成!');                        layer.close(index); //执行完后关闭                        ajaxRequest(1, true)                    }                });            });

3

这里是jsonp的后端代码,主要是拼接参数。statuscallback是在前端设置的方法名,这里直接获取。拼接参数,其余的交由浏览器去处理。@RequestMapping(value = '/updateStatus') @ResponseBody public String updateStatus(@RequestParam('statuscallback') String callback,String id){   ServiceResult result= EmplErrorService.updateStatus(id);   return callback+'('+JSON.toJSONString(result)+')'; }

5

直接继承CorsFilter,创建MyCorsFilter。public class MyCorsFilter extends CorsFilter {      public MyCorsFilter() {         super(configurationSource());     }      private static UrlBasedCorsConfigurationSource configurationSource() {         // CORS授权         CorsConfiguration config = new CorsConfiguration();         config.setAllowCredentials(true);         config.addAllowedOrigin('*');         config.addAllowedHeader('*');         config.addAllowedMethod('*');         config.addExposedHeader(HttpHeaders.SET_COOKIE);         config.setMaxAge(3600L);         UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();         source.registerCorsConfiguration('/**', config);         return source;     } }

6

配置web.xml使之生效。    CORS    com.iflytek.psdataservice.filter.MyCorsFilter           cors.allowOrigin       *               cors.supportedMethods       GET, POST, HEAD, PUT, DELETE               cors.supportedHeaders       Accept, Origin, X-Requested-With, Content-Type, Last-Modified,hash,ticket               cors.exposedHeaders       Set-Cookie               cors.supportsCredentials       true          CORS    /* 

7

前端的ajax请求直接是和平时非跨域请求一致的。此实例亲测有效,可以直接复制代码使用。

注意事项

spring版本要4以上

推荐信息