jsonp原理:首先在客户端注册一个函数;然后把函数的名字传给服务器;接着服务器成json数据,并以javascript语法的方式,将数据传入客户端注册的函数中;最后在客户端注册函数中接收json即可。
jsonp
jsonp(json with padding)是json的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 html 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 json 资料,而这种使用模式就是所谓的 jsonp。用 jsonp 抓到的资料并不是 json,而是任意的javascript,用 javascript 直译器执行而不是用 json 解析器解析。
jsonp的由来
根据浏览器同源策略,所谓同源就是协议、主机、端口号都相同时成为同源。a 域的js不能直接访问 b域名的信息,但是script 标签的src属性可以跨域引用文件,jsonp是请求之后后台包装好一段json,并且把数据放在一个callback函数,返回一个js文件,动态引入这个文件,下载完成js之后,会去调用这个callback,通过这样访问数据。
jsonp有什么用?
由于同源从略的限制,xmlhttprequest只允许请求前源(域名、协议、端口)的资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后再服务端输出json数据并执行回调函数,从而解决跨域数据请求
推荐教程:《js》
以上就是jsonp原理是什么?的详细内容。