跨域:一文解释web跨域,域 是什么含义

1.跨域的含义:

      既然有人造这个词,个人还是喜欢先从字面意思去解释,“跨域”理解跨域不同领域,在我们IT这“域”理解为领域,平台,应用,资源,意为跨域不同的领域,不同的机器,不同的平台获取资源。(有些资源不存在跨域,例如静态资源)

2.产生跨域的条件:

①.xhr请求 (全称 XMLHttpRequest 是一个与后台进行数据交互的前端对象,基于Http协议,支持同步和异步请求方式)

②非同源策略,域名+端口+协议(http,https)三者不一致都会产生跨域。

3.解决跨域:

①.设置代理。

②.服务器设置rsp.setHeader("Access-Control-Allow-Origin", "*");

4.跨域为什么在数据返回的时候采取判断是否是同源呢?而不是在请求的时候进行判断是不是同源?

原因:跨域请求,如果服务端在响应头中设置了可以跨域权限,则浏览器则不是拦截响应数据

附上跨域浏览器和服务端交互的原理:

         

①.浏览器先根据同源策略对前端页面和后台交互地址做匹配,若同源,则直接发送数据请求;若不同源,则发送跨域请求。

②.服务器解析程序收到浏览器跨域请求后,根据自身配置返回对应文件头。若未配置过任何允许跨域,则文件头里不包含Access-Control-Allow-origin字段,若配置过域名,则返回Access-Control-Allow-origin+ 对应配置规则里的域名的方式。

.浏览器根据接受到的http文件头里的Access-Control-Allow-origin字段做匹配,若无该字段,说明不允许跨域;若有该字段,则对字段内容和当前域名做比对,如果同源,则说明可以跨域,浏览器发送该请求;若不同源,则说明该域名不可跨域,不发送请求

 

你可能感兴趣的:(前端,Java面试题)