Solon 的跨域处理 Cross
Solon 的跨域处理,由 solon.web.cors 插件提供支持。在 solon-web 快速集成开发包内已包含。主要有三种使用方式。
1、加在控制器上,或方法上
@CrossOrigin(origins = "*")
@Controller
public class Demo1Controller {
@Mapping("/hello")
public String hello() {
return "hello";
}
}
@Controller
public class Demo2Controller {
@CrossOrigin(origins = "*")
@Mapping("/hello")
public String hello() {
return "hello";
}
}
2、加在控制器基类
@CrossOrigin(origins = "*")
public class BaseController {
}
@Controller
public class Demo3Controller extends BaseController{
@Mapping("/hello")
public String hello() {
return "hello";
}
}
3、全局加在应用上
public class App {
public static void main(String[] args) {
Solon.start(App.class, args, app->{
//例:或者:增加全局处理(用过滤器模式)
app.filter(-1, new CrossFilter().allowedOrigins("*")); //加-1 优先级更高
//例:或者:增加全局处理(用过路由过滤器模式)
app.routerInterceptor(-1, new CrossInterceptor().allowedOrigins("*")); //加-1 优先级更高
//例:或者:增加全局处理(用处理链模式)
app.before(new CrossHandler().allowedOrigins("*"));
//例:或者:增某段路径的处理
app.before("/user/**", new CrossHandler().allowedOrigins("*"));
});
}
}