IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> axios妙用:ios下支付宝小程序webview内嵌H5页面上传图片解决方案 -> 正文阅读

[移动开发]axios妙用:ios下支付宝小程序webview内嵌H5页面上传图片解决方案

这几天项目上遇到一个问题,就是使用webview的方式嵌入同一套H5页面代码,在微信小程序里可正常运行,在APP中可正常运行,但是在ios端支付宝小程序中所有传参为formdata形式的接口都会有问题,后端无法取到formdata中的数据,而安卓端是正常的。 翻阅了支付宝小程序官网上对webview内嵌H5上传图片的部分,发现写着大大的:不支持

看了许多网上的解决方案也都似乎没有解决方式,都是利用了webview和H5页面通信的方式来解决,可是我们的H5页面是嵌入到第三方的小程序里webview的,如果要修改webview的通信这种方式,势必要麻烦第三方来配合,且不说人家愿意与否,自己也会觉得不好意思。

还是不死心,想弄清楚安卓下和ios下传的参数区别到底在哪里,于是加了VConsole调试工具。 以下是安卓下的参数:

以下是ios下的参数:

又看了其他几个ios下传formdata参数的接口,参数都是统一的形式,被拆分成了:

{
    realFormData: {},
    appendData: [{...}]
}
复制代码

这个形式是对于传参加了一层封装,怪不得后端按照接口约定取不到值了。 既然找到这个原因,那能不能从参数入手呢? 忽然想起axios是可以在请求发送前对参数进行修改的,利用?transformRequest?配置项。

那可以先在该配置项中打印一下参数是不是已经被支付宝小程序加了那层封装,如果在这里看到的参数是已经被封装过的那就好办了,只要进行拆分,拆分为原本的数据格式,那就能按照拆分后的格式发送出去了。 经过测试,果然在transformRequest里已经是封装过的参数了。 并且重新组装参数后,后端可以正常接受参数,取值,返回正确数据了,太开心了!

最终解决方案如下:

原本调用接口传参方式,由传递formdata格式,改为直接传递普通数据,在transformRequest中组装formdata参数:

改为:

最后想问下,不知道为何ios下支付宝小程序对webview里H5传递formdata的参数会加一层封装,有明白的大佬吗? 而且官方文档里说不支持上传图片,是不是就因为这个封装的问题呢? 是不是只能用axios来hack这个问题呢?还有其他方式吗?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-07-21 21:40:09  更:2022-07-21 21:41:03 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 4:36:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码