A while back I wrote a post Building a REST service with Spring and today I needed to try out the CORS support to allow a similar Spring based REST service to allow for CORS access from a React application I’m working on.
It’s super easy to allow access to all clients by simply adding @CrossOrigin to your controller, for example
package demo;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@CrossOrigin
@RestController
public class SampleController {
@RequestMapping("/purchaseOrder")
public PurchaseOrderType getPurchaseOrder() {
return new PurchaseOrderType(1234);
}
}
Equally we can just add the same annotation to REST methods instead of the whole controller, for example
@CrossOrigin
@RequestMapping("/purchaseOrder")
public PurchaseOrderType getPurchaseOrder() {
return new PurchaseOrderType(1234);
}
Note: @CrossOrigin is the equivalent of @CrossOrigin(origins = “*”).
If we want to limit the origins then we simply use the following instead
@CrossOrigin(origins = "http://localhost:3000")
// or an array of origins like this
@CrossOrigin(origins = {"http://localhost:3000", "http://localhost:3001"})