微信小程序外部API调用方法,遇到的一个小问题

简介: 最近对微信小程序比较感兴趣,想写一个查询车辆违章记录的小程序。在调用外部接口时需要,appcode 这种authoriztion。发现微信小程序的ajax请求使用这种方式不起作用。改为直接在header中赋值生效了,不知道什么原因,希望遇到同样问题的伙伴可以不用弯路。

最近对微信小程序比较感兴趣,想写一个查询车辆违章记录的小程序。在调用外部接口时需要,appcode 这种authoriztion。发现微信小程序的

ajax请求使用这种方式不起作用。改为直接在header中赋值生效了,不知道什么原因,希望遇到同样问题的伙伴可以不用弯路。

 beforeSend: function (xhr){
        console.log('授权码');
        xhr.setRequestHeader("Authorization", "APPCODE "+"XXXXXXXXXXXXXXXXXXX");
      },

解决方法

 header: {
        'content-type': 'application/json',
        'Authorization': "APPCODE " + "XXXXXXXXXXXXXXXXXXX"
      },

详细代码如下

confirm: function () {
    console.log("clicked confirm");
    this.setData({
      hidden: true
    });
    var timestamp = new Date().getTime();
    var apiUrl = "http://ddycapi.market.alicloudapi.com/violation/query";
    //注释掉的代码为废弃车首页和路帮网的免费接口,使用阿里云的api收费服务
    //var appId = "129";
    //var appKey = "4263c4f0-4f56-0135-3375-0242c0a80006";
    //var carInfo = "{plate_num=" + this.data.plateNo + "&body_num=" + this.data.frameNo + "&engine_num=" + this.data.engineNo + "&city_id=190&car_type=02}";
   // var signStr = appId + carInfo + timestamp + appKey;
   // var sign = util.md5(signStr);
    //console.log("carInfo:" + carInfo);
    //console.log("signStr:" + signStr);
    //console.log("sign:" + sign);
    //var url = apiUrl + "car_info=" + carInfo + "&api_id=" + appId + "&sign=" + sign + "×tamp=" + timestamp;
   // console.log("url:" + url);
    var that = this;
    wx.request({
      url: apiUrl,
      method:'post',
      data: { "plateNumber": "陕AD3738", "engineNo": "695176712", "vin": "662722", "carType": "02" },
      header: {
        'content-type': 'application/json',
        'Authorization': "APPCODE " + "XXXXXXXXXXXXXXXXXXX"
      },
      beforeSend: function (xhr){
        console.log('授权码');
        xhr.setRequestHeader("Authorization", "APPCODE "+"XXXXXXXXXXXXXXXXXXX");
      },
      success: function (res) {
        if (res.statusCode != 200) {
          console.log('接口调用异常');
          that.setData({
            resultModalHidden: false,
            resultMsg: '接口调用异常'
          });
        }
        var obj = res.data;
        var status = Number(obj.status);
        that.setData({
          resultModalHidden: false
        });
        switch (status) {
          case 1002:
            console.log('app_id有误');
            break;
          case 1003:
            console.log(' sign加密有误');
            break;
          case 1004:
            console.log('车牌号,汽车类型,违章城市 等字段不能为空');
            break;
          case 1005:
            that.setData({
              resultMsg: '输入的车辆信息有误,请查证后重新输入'
            });
            console.log('车辆信息有误');
            break;
          case 2000:
            that.setData({
              resultMsg: '恭喜,当前城市交管局暂无您的违章记录'
            });
            console.log('正常(无违章记录)');
            break;
          case 2001:
            console.log('正常(有违章记录)');
            break;
          case 5000:
            console.log('请求超时,请稍后重试');
            break;
          case 5001:
            console.log('交管局系统连线忙碌中,请稍后再试');
            break;
          case 5002:
            console.log('恭喜,当前城市交管局暂无您的违章记录');
            break;
          case 5003:
            console.log('数据异常,请重新查询');
            break;
          case 5004:
            console.log('系统错误,请稍后重试');
            break;
          case 5005:
            console.log(' 车辆查询数量超过限制');
            break;
          case 5006:
            console.log('你访问的速度过快, 请后再试');
            break;
          case 5008:
            that.setData({
              resultMsg: '输入的车辆信息有误,请查证后重新输入'
            });
            console.log('输入的车辆信息有误,请查证后重新输入');
            break;
          default:
            console.log('未知错误');
        }
        console.log(res)
      }
    })
  },


目录
相关文章
|
9天前
|
JavaScript API
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
js【最佳实践】遍历数组的八种方法(含数组遍历 API 的对比)for,forEach,for of,map,filter,reduce,every,some
21 1
|
10天前
|
小程序
微信小程序APPID的两种查看方法
查看微信小程序APPID的两种方法:1) 在小程序内点击右上角“...”,进入查看页面,点击“更多资料”查看;2) 登录微信公众平台([https://mp.weixin.qq.com/](https://mp.weixin.qq.com/)),进入【设置】查看“账号信息”。
74 1
|
7天前
|
存储 监控 API
解锁京东 APP 商品详情的 API 接口获取方法
在数字化商业环境中,获取京东APP商品详情的API接口至关重要。这有助于电商数据分析、价格监控、商品推荐等。API接口提供高效、稳定且合规的数据源,允许快速获取大量商品信息。要使用接口,需注册开发者账号、了解接口文档并进行开发调试。示例代码展示了Python如何调用接口。同时,注意遵守规则、处理数据安全及接口更新。利用API能提升业务效率,但需在合法合规下进行。
|
10天前
|
API
支付系统----微信支付24--APlv3介绍,首先我们要引入支付参数,包含商户号,APPID、API秘钥,数字证书,用代码加载到应用程序当中,之后加载商户私钥,商户需要用私钥进行验签,微信平台接收商
支付系统----微信支付24--APlv3介绍,首先我们要引入支付参数,包含商户号,APPID、API秘钥,数字证书,用代码加载到应用程序当中,之后加载商户私钥,商户需要用私钥进行验签,微信平台接收商
|
10天前
|
缓存 JSON 算法
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
http【详解】状态码,方法,接口设计 —— RestfuI API,头部 —— headers,缓存
16 0
|
11天前
|
前端开发 小程序 API
【微信小程序】使用 Promise、async 和 await 将异步API 改写为同步
【微信小程序】使用 Promise、async 和 await 将异步API 改写为同步
20 0
|
11天前
|
小程序 JavaScript 安全
【微信小程序-原生开发】转发给好友/群,分享到朋友圈(含单页模式访问云开发数据库的方法)
【微信小程序-原生开发】转发给好友/群,分享到朋友圈(含单页模式访问云开发数据库的方法)
14 0
|
11天前
|
小程序
【微信小程序-原生开发】wxml 支持 includes (wxml中执行函数的方法)
【微信小程序-原生开发】wxml 支持 includes (wxml中执行函数的方法)
23 0
|
11天前
|
小程序 数据库 C++
【微信小程序-原生开发】实用教程16 - 查看详情(含页面跳转的传参方法--简单传参 vs 复杂传参)
【微信小程序-原生开发】实用教程16 - 查看详情(含页面跳转的传参方法--简单传参 vs 复杂传参)
12 0
|
11天前
|
NoSQL 安全 API
如何有效提升 API 接口的安全性?
**API安全关键在于验证和防刷。通过排序参数、生成签名和MD5加密确保请求合法性。使用Redis限制请求频率,防止接口被恶意刷取。验证和防刷策略结合,保护API免受攻击和滥用。**
29 0