浅析前端跨域

 跨域指的是“协议+域名+端口”三者有一个不相同导致的请求不到数据的问题。

引出一个概念:浏览器的 同源策略

 同源是指“协议+域名+端口”三者相同,三者有一个不相同,便导致跨域问题。

如图请求数据:

浅析前端跨域_第1张图片

浅析前端跨域_第2张图片

出现了端口不一致导致的经典报错。

        这个时候有一个问题需要 注意:浏览器向服务器发送了请求,服务器也接受到了请求,并且会返回数据给浏览器,但是这个时候,浏览器发现请求回来的数据端口不一致,将数据拦截了。返回错误。

解决跨域有两种思路:

        一种是前端去解决,一种是后端配置请求头

前端可以通过以下方式解决:

1、jsonp:原理:利用script标签中src属性,在引入外部资源的时候,不受同源策略限制这样的特点,需要前后台一起进行配置,也只能解决get请求问题,其他请求方式不能解决(开发中不常用)

2、代理服务器

        这种解决方案也有两种情况,一种是代理服务器和浏览器端地址一致。浏览器将请求发送给代理服务器,因为同源所以不存在问题,再由代理服务器将请求转发给服务器,服务器处理请求,将资源返回给代理服务器,再由代理服务器转发给浏览器。

        服务器与服务器之间不存在跨域。跨域仅仅存在与浏览器上。

你可能感兴趣的:(前端,web安全)