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

简介:

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的处理了。



本文转自TBHacker博客园博客,原文链接:http://www.cnblogs.com/jiqing9006/p/5950292.html,如需转载请自行联系原作者

相关文章
|
12月前
|
存储 JavaScript 前端开发
详解js跨页面传参以及API的解释
详解js跨页面传参以及API的解释
180 0
|
运维 API PHP
漏刻有时API接口实战开发系列(13):小鹅通云服务PHP-API二维数组传参解决方案
漏刻有时API接口实战开发系列(13):小鹅通云服务PHP-API二维数组传参解决方案
102 1
|
存储 JavaScript 前端开发
详解js跨页面传参以及API的解释
详解js跨页面传参以及API的解释
112 0
|
存储 JSON 移动开发
详解js跨页面传参以及API的解释
详解js跨页面传参以及API的解释
294 0
|
XML API 数据格式
API传参
在操作方法的参数前面使用Attribute
|
JSON API 数据格式
|
前端开发 API
VUE04_Promise的概述、常用API、静态方法、axios基于不同请求传参、拦截器、async/await用法(一)
①. Promise的概述和使用 ②. Promise常用API(实例方法) ③. Promise中的静态方法
238 0
VUE04_Promise的概述、常用API、静态方法、axios基于不同请求传参、拦截器、async/await用法(一)
|
JSON JavaScript 前端开发
VUE04_Promise的概述、常用API、静态方法、axios基于不同请求传参、拦截器、async/await用法(二)
④. axios介绍 ⑤. axios基础用法(get和delete) ⑥. axios基础用法(post和put)
195 0