jsonp的产生原因:产生原因是游览器同源策略的限制,导致在很多场景下我们无法正常的请求数据。
jsonp的原理:聪明的程序员想到了使用<script>标签的src属性,该属性可以发起一个无视同源策略的get请求,请求到的数据必须是JavaScript语句,即一个函数或者一个对象,一般使用函数参数的形式返回数据。
下面来看请求案例:
请求地址:https://xxx.cn/yyy?tk=44&level=7&ppp=1234563&callback=jsonp_1e4b587fdfc9ec0
请求回来的数据:
jsonp_1e4b587fdfc9ec0&&jsonp_1e4b587fdfc9ec0({data:'数据'})
发现了吗?返回的函数名跟请求的函数名是相同的,这是为了方便前端拿到返回结果后,执行jsonp_1e4b587fdfc9ec0函数。
给大家推荐一篇文章讲的很好:【原创】说说JSON和JSONP,也许你会豁然开朗,含jQuery用例 - 随它去吧 - 博客园 (cnblogs.com)