美文网首页
ajax接口复用配置

ajax接口复用配置

作者: 大胡子111 | 来源:发表于2017-09-05 18:34 被阅读36次

为什么要写配置文件,复用是根本。每个页面几乎都有动态数据,一个大型的项目可能有大几十个甚至是上百个页面,后台会给我们上线接口,本地接口,测试接口,项目走到下一个阶段要换接口进行调试更改,那是不是要上百个页面都改一遍ajax中的url呢?配置文件很重要,可以达到改一动百的效果。

config.js:

(function (w) {
    //商城
    var apiHost='http://192.168.199.107:8081';
    //云店
    var marketHost='http://192.168.199.107:8083';

    //配置项
    w.C={};
    //商城域名
    C.host=apiHost+'/mall/mobile/';
    //云店域名
    C.market=marketHost+'/market/mobile/';

    //token
    C.token='2017082718351860892b7312e7b74b40b0a9923fb14aeb6a14';
    C.marketToken='2017083115112355218e2b82ee170c4ba6b4b648dc2101aa10';

    //获取微信oppenId
    C.getWxUserInfo='http://www.rrfun.com.cn/Uc/getInfo';

    //商城接口
    C.interface={
        //折扣商城首页
        discount:'product/index',
        //商品详情
        detail:'product/detail',
        //意见反馈
        opinion:'uc/feedback/add',
        //商品类别
        selectType:'index/categorys',
        //显示所有的收货地址
        allAddress:'uc/address/list',
        //添加收货地址
        addAddress:'uc/address/add',
        //修改收货地址
        insertAddress:'uc/address/edit',
        //删除收货地址
        deleteAddress:'uc/address/delete',
        //根据商品id获得所有评价信息
        detailComment:'product/feedbacks',
        //秒杀首页
        seckill:'seckill/list',
        //秒杀详情
        seckillDetail:'seckill/detail',
        seckillBanner:'seckill/banners'

    };
    //云店接口
    C.marketInterface={
        //店铺分享
        share:'uc/store/share',
        //我的店铺
        myShop:'uc/store/index',
        //东东推个人中心
        my:'uc/index',
        // 绑定手机号
        bindingtel:'uc/phone/bind',
        // 设置
        setup:'uc/set/index',
        //团队管理
        teamadmin:'uc/group/index',
        //我的团队
        myteam:'uc/group/peoples',

        //我的老师
        myTeacher:'uc/teacher/index',
        //注册登录提交验证码
        reg:'login/reg',
        //获取公告
        notice:'notice/list',
        //公告详情
        noticeDetail:'notice/detail',
        //商品中心
        discount:'product/index',
        //商品类别
        selectType:'index/categorys',
        //推广中心
        promotionCenter:'index/index',
        //销售管理(成功,失败,交易中)
        orderList:'uc/order/list',
        //个人店铺中删除商品
        delMyShop:'uc/store/del',
        //分享给朋友或朋友圈
        shareFriend:'product/send',
        //微信群发波次商品
        batchShare:'product/weixinBatch',
        //微信群发当前波的商品
        weixinBatchSend:'product/weixinBatchSend',
        //发送到微信朋友圈
        friendBatch:'product/friendBatch',
        //秒杀首页
        seckill:'seckill/list',
        //秒杀详情
        seckillDetail:'seckill/detail',
        seckillBanner:'seckill/banners'
    };

    //商城组合接口地址
    for (k in C.interface){
        C.interface[k]=C.host + C.interface[k];
    }

    //云店组合接口地址
    for (k in C.marketInterface){
        C.marketInterface[k]=C.market+C.marketInterface[k];
    }

    //获取当前域名
    var localHostUrl = window.location.href.replace(/(\?.+?)$/g, '');
    localHostUrl = localHostUrl.replace(localHostUrl.split("/").pop(), '');
    C.localHostUrl = localHostUrl;

})(window);

正常js文件:

$(document).ready(function () {
    //获取到url后面的productId,这个是标识
    function locationSearcher(key) {
        var search = location.search.split('?');
        if(search.length>1){
            var params = search[1].split('&');
            for(var i=0;i<params.length; i++){
                var item = params[i].split('=');
                var k = item[0];
                if(key == k){
                    return item[1];
                }
            }
        }
        return null;
    }

    var detailId=locationSearcher('productId');
    // console.log(detailId);

    //Handlebars详情数据模板
    var detailTpl=$('#detail-template').html();
    var detailCmp=Handlebars.compile(detailTpl);

    $.ajax({
        url:C.interface.detail,
        type:'POST',
        dataType:'json',
        data:{
            productId:detailId,
        },
        success:function (response) {
            if (response.result=='success'){
                var data=response.data;
                //Handlebars详情数据模板
                $('#detail-content-box').html(detailCmp(data));

            }else if (response.result == 'login') {
                alert('您还没有登录,请登录');
            } else {
                alert(response.errorMsg);
            }
        }
    });

});

相关文章

  • ajax接口复用配置

    为什么要写配置文件,复用是根本。每个页面几乎都有动态数据,一个大型的项目可能有大几十个甚至是上百个页面,后台会给我...

  • ajax接口复用配置内容

    为什么要写配置文件,复用是根本。 每个页面几乎都有动态数据,一个大型的项目可能有大几十个甚至是上百个页面,后台会给...

  • axios.defaults 配置

    1、配置接口地址: 2、允许ajax携带cookie ( axios 默认是不允许ajax请求头携带cookie ...

  • 项目发包注意事项(每一个环境发包必看)

    、检查ajax请求地址的域名是否配置正确; 2、(如果有)检查图片服务器域名是否配置正确,更好的做法是,接口返回域...

  • 2016-08-18 短信接口、ajax请求

    短信接口、ajax请求 ajax请求 $.ajax()方法详解 url type timeout: async: ...

  • ajax

    Ajax 1 - 请求纯文本 Ajax 2 - 请求JSON数据 Ajax 3 - 请求Github接口 Ajax...

  • Vue数据请求

    1 - 前端接口调用方式 原生ajax 基于jQuery的ajax fetch axios 2 - 接口调用-fe...

  • 微信小程序-ajax的使用和封装

    微信小程序的ajax使用方法: ajax 函数封装 在我们做项目的时候,为了方便复用,需要封装ajax函数方便随时...

  • 面向对象原则

    一、区分变与不变 不变为基类变为接口 二、能够复用和拓展 复用为基类拓展为接口 三、针对接口编程 抽象基类中有接口...

  • ajax

    原生ajax配置详解 对ajax简单封装 调用

网友评论

      本文标题:ajax接口复用配置

      本文链接:https://www.haomeiwen.com/subject/mgkpjxtx.html