小程序报错 request:fail response data convert to UTF8 fail

最近在工作当中遇到一些问题。在获取微信小程序码的时候,有一部分是放在h5页面的。不知道哪个瓜娃子出的馊主意,把静态(h5)页面放到了另外一个域名下。在接口拿到腾讯小程序的生成的小程序码的时候,如果拿到了我们就返回的是二进制文件流。如果没有拿到正确的,我们会返回相应的错误提示。

这个调取微信小程序码的方法在域名A下,而h5在域名B。这样用canvas 转成图片保存下来的时候,提示跨域问题,通过laravel的中间件解决跨越问题,这次不报 access_origin的问题了.

报这个错误: DOMException: Failed to execute 'toDataURL' on 'HTMLCanvasElement': Tainted canvases may not be exported.

 

百度,google的解决方案:

第一种 1  img.setAttribute('crossOrigin','Anonymous'); 呵呵不灵

第二种 2 把 img.src 放在 onload 之后 呵呵 不灵

第三种 3 把A的方法放在B 或者把B的H5放在A。。。。这个灵。

 

然后 各种坑踩过之后,安卓系统没问题,ios出现了 request:fail response data convert to UTF8 fail

方法1 把 返回的 二进制流 trim 一下.

方法2 把小程序的 object.responseType  设置为arrayBuffer.

问题解决。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注