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) } }); });
这里是jsonp的后端代码,主要是拼接参数。statuscallback是在前端设置的方法名,这里直接获取。拼接参数,其余的交由浏览器去处理。@RequestMapping(value = '/updateStatus') @ResponseBody public String updateStatus(@RequestParam('statuscallback') String callback,String id){ ServiceResult
直接继承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; } }
配置web.xml使之生效。
前端的ajax请求直接是和平时非跨域请求一致的。此实例亲测有效,可以直接复制代码使用。
spring版本要4以上