• 后端Java关于跨域的几种解决方法


     

    本人遇到的跨域问题,解决方式还有nginx代理,配置拦截器,ajax的jsonp,jQuery的jsonp插件等,技术有限,遇到了会继续更新

    1.在接口名上添加注解

    @GetMapping("/student/pdf1")
    @CrossOrigin(origins = "*", allowCredentials = "true", allowedHeaders = "", methods = {})
    public synchronized void studentPdf1(@RequestParam String string) {

    }

    2.在接口内添加

     @GetMapping("/student/pdf1")public synchronized SignEntity studentPdf1(@RequestParam String string,HttpServletResponse response)  {
     response.setHeader("Access-Control-Allow-Origin", "*");
     response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
     response.setHeader("Access-Control-Max-Age", "3600");
     response.setHeader("Access-Control-Allow-Headers", "x-requested-with");
     System.out.println(response.getStatus());
    }

    3.实现addCorsMappings

    @Configuration
    public class WebConfig implements WebMvcConfigurer {
        @Override
        public void configurePathMatch(PathMatchConfigurer configurer) {
    
        }
    
        @Override
        public void configureContentNegotiation(ContentNegotiationConfigurer configurer) {
    
        }
    
        @Override
        public void configureAsyncSupport(AsyncSupportConfigurer configurer) {
    
        }
    
        @Override
        public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
    
        }
    
        @Override
        public void addFormatters(FormatterRegistry registry) {
    
        }
    
        @Override
        public void addInterceptors(InterceptorRegistry registry) {
    
        }
    
        @Override
        public void addResourceHandlers(ResourceHandlerRegistry registry) {
    
        }
    
    
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedOrigins("*")
                    .allowCredentials(true)
                    .allowedMethods("POST, GET, OPTIONS, DELETE")
                    .maxAge(3600 * 24);
    
        }
    
        @Override
        public void addViewControllers(ViewControllerRegistry registry) {
    
        }
    
        @Override
        public void configureViewResolvers(ViewResolverRegistry registry) {
    
        }
    
        @Override
        public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
    
        }
    
        @Override
        public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> returnValueHandlers) {
    
        }
    
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    
        }
    
        @Override
        public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
    
        }
    
        @Override
        public void configureHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    
        }
    
        @Override
        public void extendHandlerExceptionResolvers(List<HandlerExceptionResolver> exceptionResolvers) {
    
        }
    
        @Override
        public Validator getValidator() {
            return null;
        }
    
        @Override
        public MessageCodesResolver getMessageCodesResolver() {
            return null;
        }
    }

    4.Cors

     @Bean
        public CorsFilter corsFilter() {
            final UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSource = new UrlBasedCorsConfigurationSource();
            final CorsConfiguration corsConfiguration = new CorsConfiguration();
            /*是否允许请求带有验证信息*/
            corsConfiguration.setAllowCredentials(true);
            /*允许访问的客户端域名*/
            corsConfiguration.addAllowedOrigin("*");
            /*允许服务端访问的客户端请求头*/
            corsConfiguration.addAllowedHeader("*");
            /*允许访问的方法名,GET POST等*/
            corsConfiguration.addAllowedMethod("*");
            urlBasedCorsConfigurationSource.registerCorsConfiguration("/**", corsConfiguration);
            return new CorsFilter(urlBasedCorsConfigurationSource);
        }

    如有补充,执经叩问

  • 相关阅读:
    状压DP【p1879】[USACO06NOV]玉米田Corn Fields
    Tarjan缩点+Spfa最长路【p3627】[APIO2009] 抢掠计划
    Tarjan缩点【p1726】上白泽慧音
    分层图【p4822】[BJWC2012]冻结
    Tarjan缩点+LCA【p2783】有机化学之神偶尔会做作弊
    线段树【p1607】[USACO09FEB]庙会班车Fair Shuttle
    better-scroll踩坑合集
    在浏览器上安装 Vue Devtools工具
    无法执行vue初始化命令
    vue-cli创建第一个项目(用git bash解决上下键移动选择问题)
  • 原文地址:https://www.cnblogs.com/Iron-1995/p/14357030.html
Copyright © 2020-2023  润新知