您的位置:首页 > 编程语言 > Java开发

009,spring boot web 前端跨域请求处理

2016-12-04 00:00 921 查看
摘要: web页面中,当前工程的页面 请求 其他工程中的接口,实现跨域处理配置?

在spring mvc中 既可以进行全局的声明,也可以 进行 局部的 细粒度声明。

分别如下:

/**
* 全局设置
*/
@Configuration
public class CustomCorsConfiguration {

@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurerAdapter() {
@Override
public void addCorsMappings(CorsRegistry registry) {
////限制了路径和域名的访问
//allowedOrigins:设置 允许 前端跨域 访问的 访问请求路径的 域名和端口
//addMapping: 设置 允许 前端跨域 访问的 访问请求路径的 路径后缀
registry.addMapping("/api/**").allowedOrigins("http://localhost:8080");
}
};
}
}

@Controller
@RequestMapping(value = "/api", method = RequestMethod.POST)
public class CrossAllowController {

//特别注意: 对于controller层 细颗粒度 的 请求的 允许 跨域请求的 声明, 必须 保证 请求的方式 和 Controller的方式 保持一致才行
//即:如果 前端是post请求,那么,服务端的 接口 也必须 显示的 声明为post方式 才行,否则 请求失败。
//但是,对于 全局声明的 那种方式,就没有这一 限制
@CrossOrigin(origins = "http://localhost:8080")
@RequestMapping(value = "/get")
public HashMap<String, Object> get(@RequestParam String name) {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("title", "hello world");
map.put("name", name);
return map;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring boot web 前端跨域