每天一个前端面试题之 跨域
一、跨域的形成
跨域 是指浏览器不能执行其他网站的脚本。它是由浏览器的 同源策略 造成的,是浏览器对javascript施加的安全措施。
同源策略 是指:URL的协议,域名、端口都相同。只要其中有一个不同,便会产生跨域。
二、跨域的解决方法
1.跨域资源共享(CORS)
CORS是官方的跨域解决方案,支持get,post等所有类型的Http请求。
跨域资源共享(CORS) 是一种机制,它使用额外的 HTTP 头来告诉浏览器 让运行在一个 origin (domain) 上的 Web 应用被准许访问来自不同源服务器上的指定的资源。当一个资源从与该资源本身所在的服务器「不同的域、协议或端口」请求一个资源时,资源会发起一个「跨域 HTTP 请求」。
使用CORS的前提是浏览器支持这种请求(目前所有浏览器都支持该功能),并且服务器同意跨域请求。因此,实现CORS通信的关键是服务器。只要服务器实现了CORS接口,就可以跨源通信。
浏览器将CORS请求分成两类:简单请求(simple request)和非简单请求(not-so-simple request)。
简单请求: