WEB 前端跨域解决方案
跨域定义 广义的定义:跨域是指一个域下的文档或脚本试图去请求另一个域下的资源。 1.) 资源跳转: 链接、重定向、表单提交 2.) 资源嵌入: <link>、<script>、<img>、<frame>等dom标签,还有样式中background:url()、@font-face()等文件外链 3.) 脚本请求: js发起的ajax请求、dom和js对象的跨域操作等 同源策略 同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。 同源策略限制以下几种行为: 1.) Cookie、LocalStorage 和 IndexDB 无法读取 2.) DOM 和 Js对象无法获得 3.) AJAX 请求不能发送 跨域解决方案 1)jsonp跨域 关于jsonp的原理把握一下几点: 1)html标签的src属性没有同源限制(支持跨域),浏览器解析script标签时,会自动下载src属性值(url)指向的资源; 2)script标签指向的资源文件被下载后,其中的内容会被立即执行; 3)服务器端的程序会解析src属性值中的url传递的参数