搞清楚浏览器的同源策略,不要再有has been blocked by CORS policy: No Access-Control-Allow-Originheader报错了

什么是同源策略

  1. 首先同源策略是浏览器的一种安全策略,所有同源策略的限制都是浏览器给予前端页面的。
  2. 同源的源指的就是URL,什么样的URL属于同源呢,有三个限制。 必须URL的protocol\prot\host相同,通俗一点讲就是你url前面的必须一摸一样。
    原始URL http://A.B.com/C/D
URL 是否同源 原因
http://A.B.com/C/E 同源
http://A.B.com/C/E/F 同源
https://A.B.com/C/E 同源 协议不同
http://A.B.com:81/C/E 同源 端口不同
http://J.B.com/C/E 同源 主机不同

同源策略就是浏览器要遵守的一种协议。浏览器就相当于一个办公大楼,URL对应一个楼层的一个房间(即URL)。同一个楼层就相当于是同一家公司,是自己人(即同源)。我可以使用所在房间内的所有资源(板凳椅子等),同时也能使用同楼层的资源,但是我不可以使用其他楼层的资源。这样就可以保护各个楼层的安全,防止有人进行盗窃呀偷看机密文件呀什么的。
但是这样同样会出现一个问题,就是如果我租用了这幢大楼的AB两层,那么同源策略就是不允许A的员工进入B楼层,即使两个楼层都是我的。虽然这样尽职尽责,但是对于我不合理呀。
所以就引出

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这个错误是由于浏览器同源策略(Same-Origin Policy)引起的。同源策略是一种安全机制,用于防止不同源的网页之间进行恶意操作。当一个网页试图从另一个源加载资源时,浏览器会检查响应头中是否包含了"Access-Control-Allow-Origin"字段,并且该字段的值是否允许当前网页的源进行访问。 如果你在浏览器的开发者工具中看到了"has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present"的错误,说明你的请求被目标服务器拒绝了。这通常是因为目标服务器没有设置正确的CORS响应头。 要解决这个问题,你可以尝试以下几种方法: 1. 如果你有权限修改目标服务器的配置,可以在响应头中添加"Access-Control-Allow-Origin"字段,并设置允许访问的源。例如,可以设置为"*"表示允许所有源进行访问,或者设置为具体的源地址。 2. 如果你无法修改目标服务器的配置,可以考虑使用代理服务器来转发请求。你可以在自己的服务器上设置一个代理,将请求发送到目标服务器,并将响应返回给浏览器。这样就可以绕过浏览器同源策略限制。 3. 如果你只是在开发环境中遇到这个问题,可以尝试使用浏览器插件或者启动浏览器时禁用同源策略。但请注意,这种方法只适用于开发环境,不建议在生产环境中使用。 希望以上信息对你有帮助!如果还有其他问题,请随时提问。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值