关于jsonp的一个实例,其实自己也不是很了解,今天下午稍微研究了一下;
简单来说,jsonp就是为了两个不同网站之间数据传递而产生的,主要用于js脚本,因为浏览器本身是禁止跨域访问的;
本机实例:
http://127.0.0.1:80/index.php
<script src="http://cdn.staticfile.org/jquery/1.11.1/jquery.min.js"></script> <script type="text/javascript"> $(document).ready(function(){ jQuery.getJSON("http://127.0.0.1:81/index2.php?symbol=IBM&callback=?", function(data) { eval(data.symbol); name(); }); }); </script>
这是客户端的脚本,利用jquery,我现在需要在服务端脚本(php)脚本中输出一个名为name的函数,供客户端使用
http://127.0.0.1:80/index2.php
<?php $jsonData = json_encode(array(‘symbol‘=>‘function name(){alert("My name is Libin")};‘)); echo $_GET[‘callback‘] . ‘(‘ . $jsonData . ‘);‘; ?>
简单来说。就是客户端通过jquery内置的getJSON方法来调取跨域的服务器端的脚本,而服务器端的脚本输出一段json文本(可以是数组,函数均可,本实例就是输出一个函数),
但是记住一定要以json格式来输出;然后客户端接收后进行执行即可(如果是函数文本的话,可以先eval一下):;