浅聊跨域,同源和同源政策三者的关系,以及如何解决跨域

同源:指的是两个或者多个网页在一个域下面,必须满足以下三个条件

  • 协议相同(protocol)
  • 主机相同(host)
  • 端口相同(port)

举例个例子,http://www.baidu.com/index.html这个网址,协议是http://域名是www.baidu.com端口号没写默认是80(https协议中默认端口是443),它的同源情况如下。

  • http://www.baidu.com:80/index.html     //同源
  • https://www.baidu.com/index.html      //不同源(协议不同,端口也不同)
  • http://www.baidu.cn/index.html       //不同源(域名不同)
  • http://www.baidu.com/login.html      //同源

跨域:与同源相对,当同源三项条件有一项不满足的时候,就会产生跨域。跨域本质是浏览器基于同源策略的一种安全手段 。跨域产生的原因是前后端分离开发,项目工作环境不一样。

同源策略: 是一种约定,它是浏览器最核心也最基本的安全功能。同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。

三者关系:当一个页面去调用另一个页面资源的时候,就会产生跨域,这是因为受到了同源政策的约束,不满足同源的条件,所以浏览器不会响应该请求,但是数据还是照样发送给了服务器。

解决跨域的方法有三种

1.Proxy 。 使用服务器代理,它是一种特殊的网络服务,允许一个(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。

2.CORS 。它是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。

3.JSONP。 不发Ajax请求,发出的是 script 中的src请求。利用<script>标签的跨域能力实现跨域数据的访问。(只支持get请求的方式,因为通过src发送的请求都是get方式)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值