跨域及其解决方法

1.跨域

​    被访问网站 不允许 网域外的请求进行访问

2.CORS

是跨域资源共享,是一种允许非同源的地址或端口的js请求的放行协议

3.解决跨域的方法

​    (1)用注解

​        @CrossOrigin(allowCredentials = "true" , originPatterns = " * ", allowHeaders = " * " )

​        

​           配置类

 @Component
 public class WebMvcConfiguration implements WebMvcConfigurer {

 
 public void addCorsMappings(CorsRegistry registry) {
     registry.addMapping("/**")      // 添加路径规则
             .allowCredentials(true)               // 是否允许在跨域的情况下传递Cookie
             .allowedOriginPatterns("*")           // 允许请求来源的域规则
             .allowedMethods("*")
             .allowedHeaders("*") ;                // 允许所有的请求头
 }


 }

​    (2)网关代理

​      不同网域的服务由同一个路由网关进行转发,如:nginx、gateway

​    (3)用<script>标签

​    jsonp框架、

​        <script>标签的src属性没有跨域限制

4.哪些类型属于跨域

​    (1)不同请求:http、https

​    (2)不同域名

​    (3)不同端口

5.为什么有预检请求?
    用于获取服务端支持的http请求方法

​    在非简单请求要跨域访问时,在正式请求之前,向服务器发送预检请求

​    

​    浏览器将CROS请求分为:简单请求和非简单请求

​        两者的区别就是: 是否需要发送预检请求

​            简单请求的条件:1.HTTP请求是 Head 、get 、post

​                                2.只包含简单Http请求头

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值