jsonp实现原理

什么是jsonp
jsonp是解决跨域的一种方法
浏览器有一种约定叫同源策略,为了保证用户访问的安全,现代浏览器使用了同源策略,即不允许访问非同源的页面,但是有三个标签是允许跨域加载资源

    <img src=xxx>
    <link href=xxx>
    <script src=xxx>

jsonp原理
就是利用上述script标签没有跨域限制的漏洞,网页可以得到从其他来源动态产生的jsonp数据。前提条件是jsonp请求一定需要对方的服务器支持相应的格式,允许用户传递一个callback参数给服务端,然后服务端返回数据时会将这个callback参数作为函数名来包裹住JSON数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。jsonp实现原理

jsonp和ajax对比

jsonp和ajax相同,都是客服端向服务器发出请求,从服务器端获取数据的方式。但ajax属于同源策略,jsonp属于非同源策略(跨域请求)

jsonp优缺点
jsonp优点是兼容性好,可用于解决主流浏览器的跨域数据访问的问题,缺点是仅支持get方法具有局限性,不安全可能会遭受先试试攻击
jsonp实现原理