全部学科
NodeJS全栈
nodejs
Python全栈
python
📝 1 篇文章 20 道配套习题

跨域解决方案专题

专题说明

本专题系统讲解SpringMVC跨域问题解决方案,包括CORS协议原理、SpringMVC CORS配置、JSONP方案等内容。

学习目标

  1. 理解同源策略与跨域问题原理
  2. 掌握CORS协议的工作机制
  3. 熟练使用@CrossOrigin注解配置
  4. 掌握全局CORS配置方案

学习内容

  • 同源策略与跨域原理
  • CORS协议机制
  • @CrossOrigin注解
  • 全局CORS配置
  • JSONP方案

学习建议

理解跨域问题的本质,结合前后端分离架构选择合适的跨域解决方案。

📝 配套习题(20 题)

💡 参考答案在文末
判断题
1

使用拦截器实现CORS的优势是可以动态判断请求来源,根据不同来源设置不同的跨域策略。

A

B

2

当CORS配置中allowCredentials设置为true时,Access-Control-Allow-Origin不能设置为*,必须指定具体的域名。

A

B

3

跨域问题只存在于浏览器环境,服务器之间的HTTP调用不存在跨域限制。

A

B

单选题
4

拦截器处理CORS预检请求(OPTIONS)时,正确的做法是什么?

A

放行OPTIONS请求让控制器处理

B

直接返回响应并返回false阻止后续执行

C

忽略OPTIONS请求不处理

D

只设置响应头,不返回响应

5

SpringMVC全局CORS配置应该实现哪个接口并重写哪个方法?

A

WebMvcConfigurer.addInterceptors()

B

WebMvcConfigurer.addCorsMappings()

C

CorsConfigurer.configure()

D

CorsRegistry.addMapping()

6

Nginx配置反向代理转发请求到后端服务,使用的关键指令是什么?

A

redirect_pass

B

proxy_pass

C

forward_pass

D

location_pass

7

使用Nginx反向代理解决跨域问题的原理是什么?

A

Nginx设置CORS响应头

B

Nginx将请求转发使前端认为同源

C

Nginx修改请求Origin header

D

Nginx拦截跨域请求

8

SpringMVC中,在控制器方法上添加跨域支持的最简单方式是什么?

A

配置全局CORS过滤器

B

使用@CrossOrigin注解

C

使用@EnableCors注解

D

配置web.xml

9

CORS协议中,哪种请求会触发浏览器先发送预检请求(OPTIONS)?

A

GET请求

B

POST请求(Content-Type为application/x-www-form-urlencoded)

C

自定义Header的PUT请求

D

HEAD请求

10

以下哪种情况属于跨域请求?

A

http://a.com/page1 调用 http://a.com/api/data

B

http://a.com/page 调用 http://a.com:8080/api

C

http://a.com/page 调用 http://www.a.com/api

D

以上都是同源请求

11

使用拦截器实现CORS跨域,应该在哪个方法中设置响应头?

A

preHandle

B

postHandle

C

afterCompletion

D

任意方法都可以

12

浏览器限制跨域请求的安全机制叫什么?

A

CORS策略

B

同源策略

C

安全策略

D

域隔离策略

13

CORS跨域请求中,服务端允许跨域的响应头是什么?

A

Access-Control-Allow-Credentials

B

Access-Control-Allow-Origin

C

Access-Control-Allow-Methods

D

Access-Control-Allow-Headers

多选题
14

@CrossOrigin注解支持配置以下哪些属性?

A

origins

B

methods

C

allowedHeaders

D

maxAge

15

使用拦截器实现CORS,需要在preHandle方法中设置哪些响应头?

A

Access-Control-Allow-Origin

B

Access-Control-Allow-Methods

C

Access-Control-Allow-Headers

D

Access-Control-Allow-Credentials

16

配置CORS跨域时,以下哪些响应头是必须或常用的?

A

Access-Control-Allow-Origin

B

Access-Control-Allow-Methods

C

Access-Control-Allow-Headers

D

Access-Control-Max-Age

17

Nginx反向代理配置中,以下哪些指令是常用的?

A

proxy_pass

B

proxy_set_header

C

proxy_redirect

D

proxy_connect_timeout

填空题
18

使用CorsRegistry配置全局CORS时,通过____________方法指定跨域路径,通过____________方法设置允许的源,通过____________方法设置允许的HTTP方法。

19

拦截器处理CORS时,判断是否为预检请求使用____________方法名判断,设置响应头使用____________方法,阻止请求继续执行返回____________

20

CORS协议中,非简单请求会先发送____________预检请求,服务器响应____________等header后,浏览器才会发送实际请求。

参考答案
1.正确 2.正确 3.正确 4.B 5.B 6.B 7.B 8.B 9.C 10.B 11.A 12.B 13.B 14.A;B;C;D 15.A;B;C;D 16.A;B;C;D 17.A;B;C;D 18.addMapping;allowedOrigins;allowedMethods 19.OPTIONS;response.setHeader;false 20.OPTIONS;Access-Control-Allow-Origin
想在手机上练习这套专题?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码
← 上一个专题 请求接收与参数绑定专题
下一个专题 → 静态资源与乱码统一处理专题
扫码体验小程序
加载中
想在手机上刷题学习?
使用微信卷王开发者小程序,打开首页顶部扫码功能识别二维码