跨域解决方案CORS之个人记录

为什么会出现跨域?

  • 因为是浏览器的同源策略限制导致的。
  • 同源策略(Sameoriginpolicy)是一种约定。
  • 同源指在同一个域中。两个页面具有相同的协议(protocol)主机(host)端口(prot)
  • 协议主机端口都相同说明在同一个域中,不相同就会导致跨域

跨域会出现什么问题?会出现如下错误

No ‘Access-Control-Origin’ header is present on the requested resource.Origin
‘http://localhost:9011/brand’ is therefore not allowed access. The reponse had HTTP status code 400
  • 因为我们采用的是前后端分离的编程方式,前端和后端必定存在跨域问题,可以采用CORS解决跨域问题

跨域的解决方案(CORS)

  • CORS是一个W3C标准,全称是“跨域资源共享”(Cross-origin resource sharing)。
  • 只要实现CORS通信即可,实现CORS通信关键是服务器。只要服务器实现CORS接口,就可以夸源通信了
请求过程图

在这里插入图片描述

CORS通信它会自动添加一些附加的头信息

  • Preflight Reques(域请求 ) 就是请求发出的时候携带的头信息

  • 头信息:Access-Control-Request-Handers: access-control-allow-origin 表示当前的请求已经开启了跨域请求操作了

  • 然后服务器给我们返回一个 PreflightResponse(域响应)

  • 头信息:Access-Control-Request-Handers: access-control-allow-origin 表示开启了服务端的跨域请求操作

问题:发送请求和响应的时候这么携带这些头信息呢?

  • 解决:SpringMVC的版本在4.2或以上的版本,可以使用注解实现跨域,只需要在controller类添加注解@CrossOrigin就可以。
@CrossOrigin //开启跨域请求操作
public class TestController {}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值