- 什么是跨域
所谓的域是指:
- 域名
- 端口
- 协议
跨域是指:访问不同域的文件
image.png
- 为什么会存在跨域的问题
浏览器对于javascript的同源策略的限制,保护服务器上的文件不被外部访问
跨域操作的原理
凡是含有“src”,“href”这些属性的可以实现跨域,如:<script><img><iframe>jsonp
jsonp 全称是JSON with Padding,是为了解决跨域请求资源而产生的解决方案,是一种依靠开发人员创造出的一种非官方跨域数据交互协议。
jsonp的产生:
- AJAX直接请求普通文件存在跨域无权限访问的问题,不管是静态页面也好.
- 不过我们在调用js文件的时候又不受跨域影响,比如引入jquery框架的,或者是调用相片的时候
- 凡是拥有scr这个属性的标签都可以跨域例如<script><img><iframe>
- 如果想通过纯web端跨域访问数据只有一种可能,那就是把远程服务器上的数据装进js格式的文件里.
- 而json又是一个轻量级的数据格式,还被js原生支持
- 为了便于客户端使用数据,逐渐形成了一种非正式传输协议,人们把它称作JSONP,该协议的一个要点就是允许用户传递一个callback 参数给服务端
- 原理:借助标签的src属性进行数据请求