注意 :页面POST请求header需配置为 {'content-type' : "application/x-www-form-urlencoded"},如:
故,可对网络请求封装继续优化。
拓展:设置网络请求为同步可参考 Promise 封装 。大致可分为三种方案:请求嵌套(异步方式的成功回调里获取数据后再采用异步方式请求)、promise 或者await,具体实现可自行实践,这里不详细叙述。
(1) 未封装前index.vue页面使用
备注:后台返回的data值如下
打印结果: uniapp上传文件api返回的data是字符串类型,需先将data转换为json对象,之后再取里面的值 。
(2) main.js中封装网络请求
(3) 封装后index.vue页面调用
(1) http.js
(2) 单页面引入js文件并调用
(3) 全局引入js文件并调用
分析 :app端无法解析业务数据data;但是响应头与h5端相比多了3个android相关的参数,即 X-Android-Sent-Millis 、 X-Android-Response-Source 和 X-Android-Received-Millis 。
解决 :修改该uni-app项目的配置文件mainfest.json,选择App常用其他设置,自定义组件模式默认是开启的, 关闭自定义组件模式 并 重启开发工具 即解决app端无法解析业务数据的问题,此时app端获取到的响应头的参数与h5端是一样的。
(1) 请求服务器A中的接口a(app端和h5端都能请求到业务数据)
(2) 请求服务器B中的接口b
问题 :app端请求的业务数据data一直为“200 OK”,但h5端可以请求到业务数据。
分析 :应该是响应头的问题。
总结 :h5端正常解析,但是app端数据解析异常,可能原因是不同语言对header解析不一样(有些语言是弱语言,兼容性没有那个大)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)