nginx环境下ajax跨域获取json数据实例
- 2018-06-07 10:28:03
- 开发
- 30
- shevechco
今天要开始开发移动端APP,移动APP需要跨域来获取接口数据,所以需要我们在nginx下做下配置,相对于apache来说nginx配置更加简单,只需要在网站目录下添加一个文件crossdomain.xml,这个文件名是固定的,内容如下:
<?xml version="1.0"?> <cross-domain-policy> <allow-access-from domain="*" /> </cross-domain-policy>
然后我们的ajax也需要改造下,主要是吧json改成jsonp来获取json数据,具体实例如下:
$.ajax({ url: 'http://www.admin.com/api/index.html?callback=?', type: 'GET', dataType: 'jsonp', jsonp: 'callback', success: function(json){ var str; for(var p in json){ //console.log(json[p].title); str = '<li><a href="detail.html?id='+json[p].id+'">'+json[p].title+'<\/a><\/li>' $('#list').append(str); } } });
服务端控制器主要是改成返回一个callback回调来返回数据,ajax实例:
<?php namespace app\index\controller; class Api extends Base{ public function index(){ $data = db('picture')->where('status=99')->order('id desc')->limit(10)->select(); echo $_GET['callback'].'('.json_encode($data).')'; } public function detail(){ $id = input('param.id'); $r = db('picture')->where('id='.$id)->find(); $r1 = db('picture_data')->where('id='.$id)->find(); $data = array_merge($r, $r1); echo $_GET['callback'].'('.json_encode($data).')'; } }
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.sulao.cn/post/479
相关推荐
- flask使用nginx代理以后图片上传和加载问题解决方法
- nginx反向代理http/https、rpc/grpc、ws/wss
- nginx四层负载均衡配置解析以及卡顿问题的处理
- centos7部署k8s多master高可用集群(k8s+containerd+nginx+keepalived)
- k8s部署ingress-nginx
- docker部署keepalived非抢占单播模式
- docker-compose部署nginx反向代理tomcat
- docker-compose编排lnmp(nginx+php+mysql)环境
- docker和docker-compose分别部署nginx
- ELK收集日志和kibana使用方法