【跨域~】

跨域

跨域是指浏览器不执行其他网站脚本的,由于浏览器的同源策略造成的,是对JS的一种安全限制。

当你通过浏览器向其他服务器发送请求的时候,不是服务器不响应,是服务器返回的结果被浏览器限制了。

同源策略:
同源策略是1995年Netscape公司引入浏览器的,目前浏览器都是实行这个策略。是为了保证用户的信息安全,防止恶意的网站窃取数据。

同源是协议、域名、端口相同。

解决跨域

  1. JSONP
    JSONP是服务器与客户端跨源通信的常用方法。
    原理:利用JS的script标签的src属性可以不受同源的限制,进行跨域请求数据的属性。在HTML页面中添加一个script标签,向服务器发送请求,服务器收到请求后,返回数据,将数据放在指定的回调函数中,回调函数中可以对数据进行操作。

优势:简单实用,老浏览器均支持,服务器改造小。

  1. GET、POST
    CORS是W3C标准,它允许浏览器向跨源服务器发送AJAX请求,当浏览器发送请求的时候,会在请求头自动添加origin字段,值为发送请求的页面的所在域名,请求到达服务器,服务器会根据这个字段校验,如果这个源不在许可范围内,会有一个正常的响应,但是响应头没有Access-Controller-Allow-Origin,浏览器抛出一个错误,会被XHR的onerror函数捕获,但是HTTP的状态码也有可能是200,如果请求的类型是PUT或DELETE等特殊的请求方法,或者content-type:application/json,那么,这个请求为非简单请求,浏览器会在发送正式请求前先发送一个预检请求,预检请求中的请求头部信息除了origin源字段以外,还有Access-Control-Allow—Method和Access-Control-Allow—Header,预检请求是一个OPTION类型的请求,只要服务端通过了预检请求,之后的请求就和简单请求是一样的。

GET、POST是AJAX的请求,AJAX请求是基于XMLHttpRequest对象的跨域请求方式(低版本的ie是ActiveXObject对象),XMLHttpRequest是AJAX的核心机制。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值