php中 如何生成jsonp数据接口及如何调用?

什么是jsonp?

JSONP(JSON with Padding)是JSON的一种“使用模式”,可用于解决主流浏览器的跨域数据访问的问题。由于同源策略,一般来说位于 server1.example.com 的网页无法与不是 server1.example.com的服务器沟通,而 HTML 的<script> 元素是一个例外。利用 <script> 元素的这个开放策略,网页可以得到从其他来源动态产生的 JSON 资料,而这种使用模式就是所谓的 JSONP。用 JSONP 抓到的资料并不是 JSON,而是任意的JavaScript,用 JavaScript 直译器执行而不是用 JSON 解析器解析。

首先创建一个jsonp.php文件

文件中,代码如下:

<?php
header('Content-type: application/json');
//获取回调函数名
$jsoncallback = htmlspecialchars($_REQUEST ['jsoncallback']);//把预定义的字符转换为 HTML 实体。

$arr=array(
			array(
				'name'=>'zhangsan',
				'sex' =>'man',
				'age' =>18,
				),
			array(
				'name'=>'lisi',
				'sex' =>'women',
				'age' =>20,
				),
			array(
				'name'=>'wangwu',
				'sex' =>'man',
				'age' =>19,
				),
		);

	$json_data=json_encode($arr);//转换为json数据

//输出jsonp格式的数据
echo $jsoncallback . "(" . $json_data . ")";
?>

再创建一个getjsonp.html文件,在同级目录中,

将jquery.js文件引入进来

文件中代码为:

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>获得jsonp对象</title>
	<script src="jquery.js"></script>
</head>
<body>
<input type="text" id="val" ><input type="button" id="dian" value="点击">
	<script>
	var url='http://www.seven.com/lianxi/CodeIgniter-3.0/index.php/Welcome/jsonp';
	//var url='jsonp.php';
	$("#dian").click(function(){

		var aa=$("#val").val();
		var data={jsoncallback:aa};

		$.getJSON(url,data,function(msg){
			//console.log(msg);
			alert(msg);
		})
	})
	
	</script>
</body>
</html>


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值