uniapp app端 ios 安卓 附件上传踩得坑

  • Post author:
  • Post category:uniapp




需求:app端 ios 需要实现附件上传功能

于是我就去百度,翻到了一款叫 lsj-upload插件

在这里插入图片描述

安卓端用插件没有任何问题,轻松解决附件上传的问题。

后来真机运行ios,点击选择附件,没有任何弹窗,进入源码查看try catch也没有任何报错。这事整了好几天无果。

后来选择1.0的版本,选择附件
在这里插入图片描述

弹窗出来了,但是ios上传失败了,网络请求显示no content,原来是ios有限制,

如图

在这里插入图片描述

也就是说ios读取本地文件存在跨域。



ios读取本地文件存在跨域(没有解决)

后来,把测试手机的ios11.0.1升级了,2.0版本的插件选择附件的弹窗成功可以



调用接口:

成功升级选择文件之后,接下来就是调用接口,通过抓包工具发现:



request
OPTIONS /api/adminFile/upload HTTP/1.1
Host: 127.0.0.1:88
Origin: null
Access-Control-Request-Method: POST
Connection: close
Access-Control-Request-Headers: admin-token
Accept: */*
User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 15_7_2 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148 Html5Plus/1.0 (Immersed/20) uni-app
Accept-Language: zh-CN,zh-Hans;q=0.9
Accept-Encoding: gzip, deflate
Content-Length: 0


response
HTTP/1.1 200 OK
Server: nginx/1.17.9
Date: Thu, 12 Jan 2023 06:01:36 GMT
Content-Length: 0
Connection: close
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: *
Access-Control-Max-Age: 18000L
Access-Control-Allow-Headers: *
Access-Control-Expose-Headers: *
Access-Control-Allow-Credentials: true

request里面出现了OPTIONS后面去网上了解了一下OPTIONS,发现还是不同,最后当后端接口全开放,这时候就通了,先走了一遍OPTIONS,然后走POST请求。最后让后端单独对这个接口做了开放



版权声明:本文为weixin_43913004原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。