使用AJAX的JSONP类型跨域请求的方法和示例
- 3397
- PHP
- 36
- super_dodo
- 2016/09/22
最近在学习使用ajax的jsonp的数据类型进行跨域请求,jsonp的形式的接口数据请求和返回是不一样的。是返回callback形式的。直接上示例代码,实现功能为主,理论知识自行百度google.
AJAX部分请求接口
//不跨域的情况下面默认 $.getJSON("http://aaa.dodobook.net/ulogin.php", {user_id:'4999'}, function(data){ alert(data); }); //跨域的情况下 $.ajax({ url: 'http://bbb.dodobook.net/ulogin.php', data: {user_id:'4999', user_name:'dodobook'}, dataType: "jsonp", jsonp: "callback", //服务端用于接收callback调用的function名的参数 async : true, type: 'get', //有网友说post不行,但是我试了是可以的???待研究 success: function (e) { //成功后回调 alert(e.msg); }, error: function(e){ //失败后回调 alert(e.msg); }, });
PHP接口返回信息如下
$user_id = $_GET['user_id'] ?? '3888'; //接收参数 $user_info = 'cookie_'.$user_id.'_dodobook'; //组装参数 setcookie("user_info", $user_info,time()+3600,'/','dodobook.net'); //写cookie //服务端返回JSON数据 $arr=array('code'=>1,'msg'=>'bbb_login_OKKK'); $result=json_encode($arr); //动态执行回调函数 $callback=$_GET['callback']; echo $callback."($result)"; //真正请求的url为 //http://bbb.dodobook.net/ulogin.php?callback=jQuery2140960437487804561_1474556651992&user_id=4999&user_name=dodobook&_=1474556651993 //真正返回的值为 //jQuery2140960437487804561_1474556651992({"code":1,"msg":"bbb_login_OKKK"})
一切都明明白白,但我们仍匆匆错过,因为你相信命运,因为我怀疑生活。
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例