在spring 4.2后,提供了跨域注解@CrossOrigin
https://spring.io/guides/gs/rest-service-cors/
Enabling CORS
Controller method CORS configuration
So that the RESTful web service will include CORS access control headers in its response, you just have to add a @CrossOrigin
annotation to the handler method:
src/main/java/hello/GreetingController.java
用例:
@CrossOrigin(origins = "http://localhost:9000")@GetMapping("/greeting")public Greeting greeting(@RequestParam(required=false, defaultValue="World") String name) {System.out.println("==== in greeting ====");return new Greeting(counter.incrementAndGet(), String.format(template, name));}
This @CrossOrigin
annotation enables cross-origin requests only for this specific method. By default, its allows all origins, all headers, the HTTP methods specified in the @RequestMapping
annotation and a maxAge of 30 minutes is used. You can customize this behavior by specifying the value of one of the annotation attributes: origins
, methods
, allowedHeaders
, exposedHeaders
, allowCredentials
or maxAge
. In this example, we only allow http://localhost:8080
to send cross-origin requests.
@CrossOrigin
注解是被注解的方法具备接受跨域请求的功能。默认情况下,它使方法具备接受所有域,所有请求消息头的请求。。。。这个例子中,我们仅接受
http://localhost:8080
发送来的跨域请求。