Jsonp 解决Ajax跨域请求 php

大家都知道Ajax是不能进行跨域请求的,那么我们可以使用Jsonp来Ajax跨域请求

代码如下:

前端:

$(document).ready(function(){
	$.ajax({
		type : "get",
		async:false,
		url : "http://192.168.1.168/jsonp/jsonp.php",
		data: {name:"LiuR_Fun", age:16},
		dataType : "jsonp",
		jsonp: "callback",//传递给请求处理程序或页面的,用以获得jsonp回调函数名的参数名
		jsonpCallback:"successCallback",//自定义的jsonp回调函数名称,默认为jQuery自动生成的随机函数名
		success : function(data){
			alert(data[0].name);
			alert(data[0].age);
		},
		error:function(){
			alert('fail');
		}
	});
	
	//简易写法
	$.getJSON("http://192.168.1.168/jsonp/jsonp.php?callback=?", { name:"Fun", age:18 }, function(data){
		alert(data[0].name);
		alert(data[0].age);
	});
});


程序代码:

header('Content-type: application/json');

//获取回调函数名
$jsonCallback = htmlspecialchars($_REQUEST['callback']);
//json数据
$json_data = '[{name:"'.$_REQUEST['name'].'",age:'.$_REQUEST['age'].'}]';
//输出jsonp格式的数据
echo $jsonCallback . "(" . $json_data . ")";

欢迎转载,原文地址:http://www.lrfun.com/html/technology/PHP/2016/0202/96.html

上一篇:使用“阿里大鱼”发送短信验证码
下一篇:php 电脑端与手机端网页实现第三方微信登录