JSONP介绍
JSONP全称是JSON with Padding ,是基于JSON格式的为解决跨域请求资源而产生的解决方案。他实现的基本原理是利用了 HTML 里 元素标签没有跨域限制
JSONP原理就是动态插入带有跨域url的script标签,然后调用回调函数,把我们需要的json数据作为参数传入,通过一些逻辑把数据显示在页面上。
比如如下代码所示,通过script标签完成http://localhost:8080/test01/dom01?callback=jsontest的调用。
后端代码:
访问test.html页面执行script,请求http://localhost:8080/test01/dom01?callback=jsontest,然后将请求的内容作为参数,执行jsontest函数,jsontest函数将请求的内容弹出来出来。结果如下:
这样我们就通过script标签实现了快于请求,绕过了同源策略。
Ajax的jsonp跨域请求原理和这个是一样的,也是在frame里面通过创建一个临时的script标签来实现跨域请求。感兴趣的同学可以自己验证下