zoukankan      html  css  js  c++  java
  • 跨域解决

    跨域,前台调用后台接口掉不通,从后台解决跨域问题

    1:普通的web项目,写个过滤器

    在web项目的web.xml里添加过滤器
    <!--     <filter> -->
    <!--           <filter-name>cors</filter-name> -->
    <!--           <filter-class>com.test.CORSFilter</filter-class> -->
    <!--     </filter> -->
    <!--     <filter-mapping> -->
    <!--           <filter-name>cors</filter-name> -->
    <!--           <url-pattern>/*</url-pattern> -->
    <!--     </filter-mapping>     -->

    ==================过滤类的写法开始============

    package com.test;

    import java.io.IOException;
    import javax.servlet.Filter;
    import javax.servlet.FilterChain;
    import javax.servlet.FilterConfig;
    import javax.servlet.ServletException;
    import javax.servlet.ServletRequest;
    import javax.servlet.ServletResponse;
    import javax.servlet.http.HttpServletResponse;
    import org.springframework.stereotype.Component;

    public class CORSFilter implements Filter {
          public void doFilter(ServletRequest request, ServletResponse response,
                  FilterChain chain) throws IOException, ServletException {
                  HttpServletResponse httpServletResponse = (HttpServletResponse) response;
                  httpServletResponse.setHeader("Access-Control-Allow-Origin", "*");
                  httpServletResponse.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
                  httpServletResponse.setHeader("Access-Control-Max-Age", "3600");
                  httpServletResponse.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
                  chain.doFilter(request, response);
      }
        public void init(FilterConfig filterConfig) {
        }
        public void destroy() {
        }
    }

    ==================过滤类的写法结束============

    2:springboot项目

    springboot需要写一个过滤类,和启动类放在同一目录下

    ==================过滤类的写法开始============

    package com.test;

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.http.converter.HttpMessageConverter;
    import org.springframework.http.converter.StringHttpMessageConverter;
    import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
    import org.springframework.web.servlet.config.annotation.ContentNegotiationConfigurer;
    import org.springframework.web.servlet.config.annotation.CorsRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    import java.nio.charset.Charset;
    import java.util.List;

    @Configuration
    public class WebMvcConfig extends WebMvcConfigurerAdapter {

        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedOrigins("*")
                    .allowCredentials(true)
                    .allowedMethods("GET", "POST", "DELETE", "PUT")
                    .maxAge(360000);
        }
    }

    ==================过滤类的写法结束============

  • 相关阅读:
    1049.(*) Counting Ones
    1135(重、错)Is It A Red-Black Tree
    3、如何判断一棵树是否是红黑树?
    2、以自定义struct或struct指针作为map的Key
    1、(★、※)如何判断一棵树是否是完全二叉树?
    1123.(重、错)Is It a Complete AVL Tree
    160819流水账
    150819流水账
    140819流水账
    130819流水账
  • 原文地址:https://www.cnblogs.com/xueershewang/p/10401598.html
Copyright © 2011-2022 走看看