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,如需转载请自行联系原作者

相关文章
|
1月前
|
Java API
JavaSE——常用API进阶二(6/8)-ZoneId、ZoneDateTime、Instant(常见方法、用法示例)
JavaSE——常用API进阶二(6/8)-ZoneId、ZoneDateTime、Instant(常见方法、用法示例)
24 1
|
1天前
|
安全 API
通义千问API获取方法
访问阿里云DashScope官网以获取API-KEY。首先需开通DashScope服务:登录控制台,点击“去开通”,阅读协议后点击“立即开通”。接着获取API-KEY:进入API-KEY管理页面,点击“创建新的API-KEY”,复制并安全保存生成的API-KEY。完成这些步骤后,即可使用API-KEY调用DashScope API。更多详情见[官方文档](https://help.aliyun.com/zh/dashscope/developer-reference/acquisition-and-configuration-of-api-key)。
|
10天前
|
JSON API 数据格式
App Inventor 2 天气预报App开发 - 第三方API接入的通用方法
通过调用第三方天气api,填入必要的参数,通过Web客户端请求url。返回json格式的数据结果,使用AppInventor2解析json结果,显示到App上即可。
55 5
|
21天前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
30 1
|
12天前
|
JSON 人工智能 API
App Inventor 2 人脸识别App开发 - 第三方API接入的通用方法
**App 效果图**:展示人脸识别功能,可识别性别和年龄。 **工作原理**:调用第三方人脸识别API,上传图片并接收返回的JSON数据,AppInventor2解析结果显示。
29 0
|
19天前
|
存储 监控 API
解锁京东 APP 商品详情的 API 接口获取方法
在数字化商业环境中,获取京东APP商品详情的API接口至关重要。这有助于电商数据分析、价格监控、商品推荐等。API接口提供高效、稳定且合规的数据源,允许快速获取大量商品信息。要使用接口,需注册开发者账号、了解接口文档并进行开发调试。示例代码展示了Python如何调用接口。同时,注意遵守规则、处理数据安全及接口更新。利用API能提升业务效率,但需在合法合规下进行。
|
1月前
|
Java API
API:object当中的各种方法刨析(今日份:equals toString)
API:object当中的各种方法刨析(今日份:equals toString)
|
22天前
|
前端开发 JavaScript API
js【详解】ajax (含XMLHttpRequest、 同源策略、跨域、JSONP)
js【详解】ajax (含XMLHttpRequest、 同源策略、跨域、JSONP)
21 0
|
22天前
|
缓存 JSON 算法
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
26 0
|
23天前
|
API
Vue2和Vue3的区别,OptionsAPI与CompositionAPI的区别,Vue2所有的数据,都写在data和method方法中,setup是一个全新的配置项,Vue2是选项式API的写法
Vue2和Vue3的区别,OptionsAPI与CompositionAPI的区别,Vue2所有的数据,都写在data和method方法中,setup是一个全新的配置项,Vue2是选项式API的写法