Detailed explanation of using spring cros to solve cross domain problems in the project
•
Java
Cross origin resource sharing (cros) is used to solve the problem of cross domain requests in browsers. Simple get requests can be solved using jsonp, while other complex requests require back-end applications to support cros. Spring provides @ crossorigin annotation after version 4.2 to support cross.
Configure on controller method
@CrossOrigin(origins = {"http://loaclhost:8088"}) @RequestMapping(value = "/crossTest",method = RequestMethod.GET) public String greeting() { return "coRSS test"; }
If configured on the controller, all methods in the controller will support CORS
import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @CrossOrigin(origins = "http://localhost:8088",maxAge = 3600) @Controller @RequestMapping("/api") public class AppController { @RequestMapping(value = "/crossTest",method = RequestMethod.GET) public String greeting() { return "coRSS test"; } }
Java config global configuration
import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.EnableWebMvc; import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; @Configuration @EnableWebMvc public class SpringWebConfig extends WebMvcConfigurerAdapter { /** * {@inheritDoc} * <p>This implementation is empty. * * @param registry */ @Override public void addCorsMappings(CorsRegistry registry) { super.addCorsMappings(registry); // 对所有的URL配置 registry.addMapping("/**"); // 针对某些URL配置 registry.addMapping("/api/**").allowedOrigins("http:///localhost:8088") .allowedMethods("PUT","DELETE") .allowedHeaders("header1","header2","header3") .exposedHeaders("header1","header2") .allowCredentials(false).maxAge(3600); } }
XML global configuration
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd"> <mvc:cors> <!--<mvc:mapping path=""/>--> <mvc:mapping path="/api/**" allowed-origins="http://localhost:8088,http://localhost:8888" allowed-methods="GET,PUT" allowed-headers="header1,header2" exposed-headers="header1,header2" allow-credentials="false" max-age="3600" /> </mvc:cors> </beans>
The above is the whole content of this article. I hope it will help you in your study, and I hope you will support us a lot.
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码