工作生活

SSM框架配置CORS跨域

2019-06-30  本文已影响0人  给我一个蜜橙啦

什么是跨域?

跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,这里跨域是广义的。

常见的跨域场景:

场景 例子 是否允许通信
不同域名 htttp://www.jianshu.com
http://www.baidu.com
不允许
同一域名,不同端口 htttp://www.jianshu.com:8080
htttp://www.jianshu.com:2333
不允许
同一域名,不同协议 http://www.jianshu.com
https://www.jianshu.com
不允许
同一域名,不同文件或路径 http://www.jianshu.com/a.js
http://www.jianshu.com/a/b.js
允许
域名和域名对应相同ip http://www.jianshu.com
http://14.204.147.95
不允许
主域相同,子域不同 http://www.jianshu.com
http://x.jianshu.com
不允许

跨域资源共享(CORS)SSM后端解决方案:

1.将cors-filter-2.4.jar和java-property-utils-1.9.1.jar,两个jar包文件放入项目目录下\web-inf\lib中。

java-property-utils 提取码:ehkd

cors-filter 提取码:egve

2.打开项目目录下\web-inf中的web.xml,在web.xml的在web-app标签下添加如下代码

<filter>
      <filter-name>CORS</filter-name>
      <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
      <init-param>
        <param-name>cors.allowOrigin</param-name>
          <param-value>*</param-value>
      </init-param>
      <init-param>
        <param-name>cors.supportedMethods</param-name>
          <param-value>GET, POST, HEAD, PUT, DELETE</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>
          <param-value>Set-Cookie</param-value>
      </init-param>
      <init-param>
          <param-name>cors.supportsCredentials</param-name>
          <param-value>true</param-value>
      </init-param>
  </filter>

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

4.添加完毕后,重启Tomcat

5.如果存在maven,需要在pom.xml中,添加

<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>[ version ]</version>
</dependency>
上一篇下一篇

猜你喜欢

热点阅读