跨域问题解析-Spring

由 林秋 发布

最近在做的一个项目是一个前后端分离的员工管理系统,前端使用vue+axios,后端使用java,使用这种方式开发就无可避免的遇到了跨域的问题,折腾了几天,看了几十篇博文,不禁感叹CSDN真的是垃圾,思否和知乎才是真正的问题解决良站。话不多说,开始步入正题。

解决跨域就要了解跨域相关知识:

1 同源策略

浏览器处于安全方面的考虑,只允许与本域名下的接口进行交互连接,即当前页面的URL与接口的URL必须是同源的,不同源的客户端脚本在没有授权的情况下,不能够读写对方的资源。

2 同源详解

同源指的是:

不同源的情况:

3 简单请求与复杂请求

请求满足以下三点即为简单请求:

  • HTTP的请求方法为GET、POST、HEAD
  • HTTP请求头只能包含Accept、Accept-Language、Content-Languag,Content-Type或Last-Event-ID
  • ContentType的值只能为以下三种
  • application/x-www-form-urlencoded
  • multipart/form-data
  • text/plain
    除次之外的请求都是复杂请求,浏览器在发送复杂请求之前会先发送Preflight request(预检请求),即OPTIONS请求。

预检请求包括两个特定字段:

  • Access-Control-Request-Method(表示后续请求会用到的HTTP方法)
  • Access-Control-Request-Headers(表示后续请求中设置的请求头部信息,不包含浏览器默认设置的头部字段)

CROS

CORS全称Cross-Origin Resources Sharing(跨域资源共享)


暂无评论

发表评论