Spring boot中解决跨域问题
来源:互联网 发布:函数式编程语言 编辑:程序博客网 时间:2024/06/14 04:21
1、使用过滤器形式。配合Spring 自带Filter(CorsFilter )
优雅起见在项目根目录新建 BeanConfiguration用于定义bean信息,如下:
@Configurationpublic class BeanConfiguration { private static final Logger LOG = Logger.getLogger(BeanConfiguration.class); /** * 解决跨域问题 * @return */ @Bean public CorsFilter corsFilter() { final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource(); final CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.setAllowCredentials(true); corsConfiguration.addAllowedOrigin("*"); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod("*"); urlBasedCorsConfigurationSource.registerCorsConfiguration("/rpc/**", corsConfiguration); return new CorsFilter(urlBasedCorsConfigurationSource); } /** * 开启方法参数校验 * @return */ @Bean public MethodValidationPostProcessor parameterVerify(){ return new MethodValidationPostProcessor(); }}2、使用注解方式:@CrossOrigin 该注解可加到方法及类上 其中参数 origins 为可调用域名 如:
@RequestMapping(value = "getLandInfo")@CrossOrigin(origins = "www.domain.com")public RpcResponseEntity<VerifyAuthorityInfo> getLandInfo(String areaCode){当然注解中还可以设置其他参数 可以自行百度或查看源码
3、使用jsonp 如下:
$.ajax({
type: "post",
dataType: "jsonp",
jsonp: "callback",
url: "http://192.168.21.165:8080/prairie/manage/weather/getWeatherInfo",
data: {weatherType: 'frostless', areaCode: '15070000'},
success: function (result) {
console.log(result);
},
error: function (err) {
console.log("失败");
}
});
type: "post",
dataType: "jsonp",
jsonp: "callback",
url: "http://192.168.21.165:8080/prairie/manage/weather/getWeatherInfo",
data: {weatherType: 'frostless', areaCode: '15070000'},
success: function (result) {
console.log(result);
},
error: function (err) {
console.log("失败");
}
});
其中后台需要将 callback 做下处理 即将返回信息用callback包裹起来:比如返回字符串为
{"invoke_result_code":"INVOKE_SUCCESS","invoke_result_message":"调用成功"} 则需处理为
callback({"invoke_result_code":"INVOKE_SUCCESS","invoke_result_message":"调用成功"})
注意callback 需要当做参数 在后台接取 即:
@RequestMapping(value = "getWeatherInfo",produces="application/javascript")public String getWeatherInfo(@RequestParam("weatherType") String weatherType, @RequestParam("areaCode") String areaCode, String callback){注意 chrome 调用需要将contentType设置为 application/javascript 否则会保错
阅读全文
0 0
- Spring boot中解决跨域问题
- spring boot 解决跨域问题
- 解决angular+spring boot的跨域问题
- 解决angular+spring boot的跨域问题
- Spring boot 完美解决ajax跨域请求问题
- spring boot 前后端分离,解决ajax跨域问题
- Spring boot + shiro 解决跨域登陆问题
- Spring Boot : CROS解决跨域问题(七)
- Spring boot + shiro 跨域配置(解决jsessionid丢失问题)
- Spring Boot使用CORS解决跨域问题
- 解决spring-boot 中 bean无法注入的问题
- 解决spring boot 打war包中遇到的问题
- Spring boot跨域问题
- spring项目中解决跨域问题
- 在Spring Boot中使用Spring Session解决分布式会话共享问题
- spring boot 跨域问题处理
- Spring boot Ajax 跨域问题
- 解决intellij中spring boot工程 无法用mainApplication启动问题
- enum构造方法解析
- sklearn中的线性回归
- ios输入的数字如果前面有0,保留去掉0之后的数据
- Mapper映射器的使用
- 【机器学习】特征工程七种常用方法
- Spring boot中解决跨域问题
- OSG配置捷径,VS2013+WIN10
- 【PAT甲级】1070. Mooncake (25)
- shiro的入门与基本运用
- 浅析读者写者模型
- js中获取el表达式的值
- 深入理解Java:SimpleDateFormat安全的时间格式化
- Android微信支付
- java抽象类