SSM-跨域
以下提供 4 种方法,推荐前两种
@CrossOrigin 注解 Controller
- 在 Controller 类或方法上加上 @CrossOrigin 注解即可允许所有 ip 跨域访问
- 在 Controller 类上表示该 Controller 的所有方法都支持跨域
- 在 Controller 中的方法上表示仅该方法支持跨域
1 | @CrossOrigin(origins = "*") // 允许所有ip跨域 |
在 SpringMVC 配置文件 spring-context.xml 中配置跨域请求
1 | <!-- 接口跨域配置 --> |
使用 cors-filter 包配置跨域
引入 pom.xml 依赖
1
2
3
4
5
6<!-- cors-filter包:配置跨域 -->
<dependency>
<groupId>com.thetransactioncompany</groupId>
<artifactId>cors-filter</artifactId>
<version>2.5</version>
</dependency>在 web.xml 文件中注册 Filter 跨域过滤器
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30<!-- 配置跨域过滤器 -->
<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>*</param-value> --> <!-- 表示所有请求都有效 -->
<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>
自定义 CrossingFilter 跨域过滤器
- 自定义过滤器,实现 Filter 接口
1 | package com.bjtcrj.filter; |
web.xml 中注册过滤器
1
2
3
4
5
6
7
8
9
10
11
12
13<!-- 配置跨域过滤器 -->
<filter>
<filter-name>CrossingFilter</filter-name>
<filter-class>com.bjtcrj.filter.CrossingFilter</filter-class>
<init-param>
<param-name>IsCross</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CrossingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 王文哲的博客!