近来无事了解一下什么是jsonp:
慕课网了解的概念是:
jsonp 的核心则是动态添加 <script> 标签来调用服务器提供的 js 脚本,允许用户传递一个 callback 参数给服务端,然后服务端返回数据时会将这个 callback 参数作为函数名来包裹住 JSON 数据,这样客户端就可以随意定制自己的函数来自动处理返回数据了。
也就是
<script src="http://...../jsonp.php?callback=arguments"></script>
这样发送给服务器,然后服务器get到callback经过运算最终返回类似于
echo "var callback={'name':'Ones','age':'18'}"
这样的数据,当在浏览器中调用res的时候就能返回下面的结果,这也解释了为什么jsonp只能使用get方式传递的原因,
另外要特别注意的是,使用jquery ajax的同学要注意,虽然jsonp也是使用的$.ajax()这种写法,但是他和ajax一点关系也没有,ajax使用的是XmlHttpRequest,而jsonp使用的是script标签的src原理,这俩完全没关系