您的位置:首页 > 其它

apiCloud中api.ajax方法跨域传参获取数据

2016-10-11 18:07 381 查看

apiCloud中的ajax方法,可以自动处理跨域访问数据,不必使用jsonp来处理了。


使用ajax方法,必须要在apiready = function() {}方法中

获取参数

var pageParam = api.pageParam;
var goods_id = JSON.stringify(pageParam.goods_id);

ajax获取数据,可以传参数

// 获取商品相关信息
api.ajax({
url: 'http://zhudianbao.yunlutong.com/?g=Api&m=Goods&a=getGoodsInfo',
method: 'get',
data: {
values: {
goods_id: goods_id
}
}
}, function(json, err) {
// 一些处理...
});

由于跨域只能异步处理,必须把处理的代码写在ajax里面

if (json.status == '1') {
var interText = doT.template($("#goodstmpl").text());
$("#info_area").html(interText(json.info));
var swiper = new Swiper('.swiper-container', {
pagination: '.swiper-pagination',
paginationClickable: true,
spaceBetween: 30,
centeredSlides: true,
autoplay: 3500,
autoplayDisableOnInteraction: false
});
} else {
var toast = new auiToast();
toast.fail({
title:json.msg,
duration:2000
});
}


服务器端的一些处理

// 获取商品信息
public function getGoodsInfo() {
$goods_id = $this->_request('goods_id','trim');
$goodsModel = D('Goods');
$goodsImgModel = D('Goods_img');
$goods_info = $goodsModel->getGoodsById($goods_id);
if ($goods_info) {
$goods_info['goods_img'] = $goodsImgModel->getGoodsImg($goods_id);
}

if (empty($goods_info)) {
$this->outData['status'] = '2';
$this->outData['msg']    = '商品不存在或已下线';
} else {
$this->outData['status'] = '1';
$this->outData['msg']    = '获取成功';
$this->outData['info']   = $goods_info;
}
$this->printOut();
}

protected function printOut() {
exit(json_encode($this->outData));
}


小结

这里的服务器只需要正常的返回json数据就可以了。不必加入jsonp的处理了。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: