HTTP访问控制(跨域问题)

跨域资源共享(CORS)

  • 同一个浏览器发出的请求,未必都是用户自愿发出的请求
    • 比如浏览页面时只有 page.html 是用户发出的,其他请求是浏览器自动发出的
  • 跨域资源共享(CORS) 使用额外的 HTTP 头来告诉浏览器,让运行在一个origin域上的Web应用被准许访问来自不同源服务器上的指定的资源
    • 主要是为了保护服务端资源
  • 浏览器本地缓存也会受到跨域限制
    • cookie、storage、indexDB等
      在这里插入图片描述
  • 跨域指不同的域名,协议或端口
    • 例如http和https就是不同协议,从http协议的地址向同一域名下https协议的地址请求会产生跨域
      在这里插入图片描述在这里插入图片描述
  • 整个CORS通信过程,都是浏览器自动完成,不需要用户参与
    • 浏览器一旦发现AJAX请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求
    • 因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信
  • 如果请求的Origin的值不在指定的许可范围,服务端返回一个正常的HTTP回应,但这个回应的头信息没有包含Access-Control-Allow-Origin字段
    • 此时浏览器就知道跨域请求失败了
    • 这种错误无法通过状态码识别,因为HTTP回应的状态码有可能是200
  • 同源策略只是浏览器的一个
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值