一说前端跨域你想到什么?肯定是大名鼎鼎的 jsonp。
什么是 jsonp ?
那什么是 jsonp ,通俗的说 jsonp 就是通过 script 标签的 src 属性可以跨过同源策略限制,请求其他域的文件(数据),而传输数据时使用了通用的 json 格式,于是取名 jsonp;
jsonp 的取值原理
普通 xhr 对象请求数据是受同源策略限制的,而像 img
、script
、iframe
等标签的 src 属性可以请求其他域的文件;
所以聪明的程序员想到,可以把数据编辑成 js 可以解析的格式放到 js 文件中,前端就可以动态加载数据了;
但这样显然存在安全问题,几乎任何人都可以随便读取数据,而且不能直接返回数据本体,这样是无法读取的,而且动态加载数据又必须异步加载才符合现代程序设计,所以最终决定:
使用前后台约定好的函数包装 json 格式的数据
同时也可以在后台做数据加密,前台解密,然后使用结束立刻销毁,提高安全性。
jsonp 简单实现
痛快贴代码:
1 | // 封装函数 |