uni-appuin-appuni-app交流圈

uniapp之请求同一个接口app端和h5端返回数据不一样(ap

2019-08-22  本文已影响3人  瑟闻风倾
test:function(){
            uni.request({
              url: "http://**.**.com:8888/user/login",
              method: "POST",
              header: {
                "content-type": "application/x-www-form-urlencoded"
              },
              data: {
                  mobile : "15639150623",
                  password : "ly250"
              },
              success(res) {
                console.log("test-login:" + JSON.stringify(res));
              },
              fail(res) {},
              complete() {}
            });
},

(1) h5端正常

{
  "data": {
    "code": "0",
    "msg": "success",
    "data": {
      "token": "WnbR5-xzSfLiNpNj",
      "userInfo": {
        "user_id": "10",
        "center_id": "1",
        "dept_id": "1",
        "name": "liy",
        "mobile": "15639150623",
        "password": "8f8fc1b88358d0db495f1a87dc41e13d",
        "is_admin": "0",
        "status": "1",
        "add_time": "1565230771",
        "last_login_time": "1566380685",
        "last_login_ip": "112.16.93.24"
      }
    }
  },
  "statusCode": 200,
  "header": {
    "pragma": "no-cache",
    "content-type": "application/json; charset=Array;",
    "cache-control": "no-store, no-cache, must-revalidate",
    "expires": "Thu, 19 Nov 1981 08:52:00 GMT"
  },
  "errMsg": "request:ok"
}
content-type.png

(2) app端请求不到业务数据

{
  "data": "200 OK",
  "statusCode": 200,
  "header": {
    "Cache-Control ": "no-store, no-cache, must-revalidate",
    "Pragma ": "no-cache",
    "Expires ": "Thu, 19 Nov 1981 08:52:00 GMT",
    "X-Powered-By ": "PHP/7.1.16",
    "X-Android-Response-Source ": "NETWORK 200",
    "Connection ": "keep-alive",
    "Access-Control-Allow-Headers ": "x-requested-with, content-type",
    "X-Android-Sent-Millis ": "1566434712638",
    "Content-Type ": "application/json; charset=Array;",
    "Date ": "Thu, 22 Aug 2019 00:45:13 GMT",
    "Server ": "nginx/1.14.0",
    "Transfer-Encoding ": "chunked",
    "X-Android-Received-Millis ": "1566434712659",
    "Access-Control-Allow-Origin ": "*"
  },
  "errMsg": "request:ok"
}

问题:app端请求的业务数据data一直为“200 OK”,但h5端可以请求到业务数据。
分析:应该是响应头的问题。
(1) 猜想1:前端发送数据的 "编码方式" 与后台接收数据的 "解码方式" 不同。这里说的编码与解码对应的是请求头 header 中的 Content-Type 字段。

总结:h5端正常解析,但是app端数据解析异常,可能原因是不同语言对header解析不一样(有些语言是弱语言,兼容性没有那个大)。

上一篇下一篇

猜你喜欢

热点阅读