什么是同源策略?
同源策略限制从一个源加载的文档或脚本与来自另一个源的资源进行交互。它是一个用于隔离潜在恶意文件的关键的安全机制。协议,端口,域名只要有任何一个不同就成为不同源。
什么是跨域?跨域有几种实现形式?
当一个资源从与该资源本身所在的服务器不同的域或端口不同的域或不同的端口请求一个资源时,资源会发起一个跨域 HTTP 请求。
跨域的实现形式:CORS(全局资源共享);JSONP;降域;postMessage
JSONP 的原理是什么?
利用script标签的src属性没有跨域限制的特点,插入script标签;利用这个特性不在返回json数据而是返回一段执行的函数,并将要返回的数据当做参数传入函数中;返回到前台调用函数,得到想要的数据。
CORS是什么?
CORS全局资源共享,基本思想是使用自定义的HTTP头部让浏览器和服务器进行沟通,从而决定请求成功还是失败,当使用XMLHTTPRequest发送请求时,浏览器发现如果不同源,会给该请求加一个请求头Origin,后台经过一系列处理,如果确定接受请求则在返回结果中加入一个响应头Access-Control-Allow-Origin,浏览器判断该响应头中是否包含Origin的值,如果包含,浏览器会处理响应,返回给我们数据,如果不包含直接驳回,我们将无法拿到响应数据。