Java项目解决Ajax跨域问题

关于跨域定义、出现原因、解决办法,不多说,直接上方案:

首先在pom.xml引入依赖包:

<!-- https://mvnrepository.com/artifact/com.thetransactioncompany/cors-filter -->
    <dependency>
      <groupId>com.thetransactioncompany</groupId>
      <artifactId>cors-filter</artifactId>
      <version>2.5</version>
    </dependency>

    <!-- https://mvnrepository.com/artifact/com.thetransactioncompany/java-property-utils -->
    <dependency>
      <groupId>com.thetransactioncompany</groupId>
      <artifactId>java-property-utils</artifactId>
      <version>1.9.1</version>
    </dependency>

然后在web.xml中添加如下filter及filter-mapping,如果有多个filter,下面这一段一定要是第一个!!!

<!-- 跨域配置-->
  <filter>
    <!-- The CORS filter with parameters -->
    <filter-name>CORS</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>

    <!-- Note: All parameters are options, if omitted the CORS
         Filter will fall back to the respective default values.
      -->
    <init-param>
      <param-name>cors.allowGenericHttpRequests</param-name>
      <param-value>true</param-value>
    </init-param>

    <init-param>
      <param-name>cors.allowOrigin</param-name>
      <param-value>*</param-value>
    </init-param>

    <init-param>
      <param-name>cors.allowSubdomains</param-name>
      <param-value>false</param-value>
    </init-param>

    <init-param>
      <param-name>cors.supportedMethods</param-name>
      <param-value>GET, HEAD, POST, OPTIONS</param-value>
    </init-param>

    <init-param>
      <param-name>cors.supportedHeaders</param-name>
      <param-value>Accept, Origin, X-Requested-With, Content-Type, Last-Modified</param-value>
    </init-param>

    <!--<init-param>
      <param-name>cors.exposedHeaders</param-name>
      &lt;!&ndash;这里可以添加一些自己的暴露Headers   &ndash;&gt;
      <param-value>X-Test-1, X-Test-2</param-value>
    </init-param>-->

    <init-param>
      <param-name>cors.supportsCredentials</param-name>
      <param-value>true</param-value>
    </init-param>

    <init-param>
      <param-name>cors.maxAge</param-name>
      <param-value>3600</param-value>
    </init-param>

  </filter>

  <filter-mapping>
    <!-- CORS Filter mapping -->
    <filter-name>CORS</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

猜你喜欢

转载自blog.csdn.net/wzy18210825916/article/details/89384609