SpringBoot跨域访问解决方法

法一:

@WebFilter(urlPatterns = { "/api/*" })
public class CORSFilter extends OncePerRequestFilter {

	private static final String encoding = "UTF-8";

	@Override
	protected void doFilterInternal(HttpServletRequest req, HttpServletResponse res, FilterChain chain)
			throws ServletException, IOException {

		req.setCharacterEncoding(encoding);
		res.setCharacterEncoding(encoding);
		res.setHeader("Access-Control-Allow-Origin", "*");
		res.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE");
		res.setHeader("Access-Control-Allow-Headers", "*");
		chain.doFilter(req, res);
	}
}

法二:

@Configuration
public class GlobalConfig {
	
    @Bean
    public WebMvcConfigurer corsConfigurer() {
    	
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**").allowedMethods("GET", "POST", "PUT", "DELETE").allowedOrigins("*")
                        .allowedHeaders("*");
            }
        };
    }

}

3,法三(终极大杀招):

在controller前加上如下注解即可

import org.springframework.web.bind.annotation.CrossOrigin;
@CrossOrigin

example:

@RestController
@RequestMapping("/event")
@CrossOrigin
public class EventController {+∞}


发布了29 篇原创文章 · 获赞 2 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/u012803274/article/details/80215919