jsonp.html
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta charset='UTF-8' />
<!-- demo1
<script type="text/javascript">
var localHandler = function(data){
alert('我是本地函数,可以被跨域的remote.js文件调用,远程js带来的数据是:' + data.result);
};
</script>
<script type="text/javascript" src="http://2.wenzg.applinzi.com/remote.js"></script>
-->
<!-- demo2
<script type="text/javascript">
// 得到航班信息查询结果后的回调函数
var flightHandler = function(data){
alert('你查询的航班结果是:航班号 '+ data.code +', 票价 ' + data.price + ' 元,' + '余票 ' + data.tickets + ' 张。');
};
// 提供jsonp服务的url地址(不管是什么类型的地址,最终生成的返回值都是一段javascript代码)
var url = "http://2.wenzg.applinzi.com/remote.php?callback=flightHandler";
// 创建script标签,设置其属性
var script = document.createElement('script');
script.setAttribute('src', url);
// 把script标签加入head,此时调用开始
document.getElementsByTagName('head')[0].appendChild(script);
</script>
-->
<!-- demo3 -->
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.1/jquery.min.js"></script>
<script type="text/javascript">
jQuery(document).ready(function(){
$.ajax({
type: "get",
async: false,
url: "http://2.wenzg.applinzi.com/remote.php",
dataType: "jsonp",
jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名(一般默认为:callback)
jsonpCallback:"flightHandler",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名,也可以写"?",jQuery会自动为你处理数据
success: function(data){
alert('你查询的航班结果是:航班号 '+ data.code +', 票价 ' + data.price + ' 元,' + '余票 ' + data.tickets + ' 张。');
},
error: function(){
alert('fail');
}
});
});
</script>
</head>
<body>
</body>
</html>
remote.php
<?php
if(isset($_GET['callback'])){
$json = '{"code": "CA1998","price": 1780,"tickets": 5}';
echo "flightHandler($json);";
}
remote.js
localHandler({"result":"我是远程js带来的数据"});
转载自:http://blogread.cn/it/article/7122