背景
chrome 在 73 版本后,限制了 content-script 跨域请求目前只有一个解决办法,废弃 content-script 跨域请求,使用background.js 执行跨域请求,但这样有个最大的问题是无法支持文件上传。
问题
- cross-request不支持文件上传
- Yapi测试集合不支持文件上传,导致测试用例无法运行。
解决方案
**思路:**将需要上传的文件转化为Base64字符串,这样接口可以保存文件数据,测试集合也可以保存。
**改动:**修改cross-request插件,支持将Base64字符串转为文件格式上传。
使用方式
-
安装cross-request3.3版本的插件包,扫码后台回复cross-request获取插件下载地址
-
接口编辑时form参数选择text类型,参数值为前缀
data:text/plain;base64,
加上文件的Base64数据 -
接口运行时Content-Type类型为
multipart/form-data
注:不包含文件类型的数据时,Yapi会把Content-Type值改为application/x-www-form-urlencoded
,可以手动改为multipart/form-data
,保存到测试集合后就可以正常运行了。