收藏
回答

wx.downloadFile 无法下载重定向后的资源,且不执行回调

问题模块
API和组件

我司有多个 CDN 加速域名,用以加速不同类型的资源(如音视频、图片、大的压缩包等等),而小程序中下载链接需要先在后台设置合法域名,且最多只能设置两个。


所以我想了一个解决方法,单独配置一个 API 域名,如 download.abc.com,将真正想下载的资源的路径以 query 的方式传递,后端做 302 重定向。如访问 http://download.abc.com/?file=http%3A%2F%2Ffile.abc.com%2Ftest.jpg 就会 302 重定向到 http://file.abc.com/test.jpg,以避开域名数量限制下载真正想下载的文件。


但实际中发现,IDE 中这样做完全没有问题;真机(Android & iOS)上却无法下载重定向后的资源,且 success、fail、complete 三个回调都不执行。通过 Fiddler 抓包后发现,实际上小程序已经请求了 302 重定向后的资源。


请问,这是小程序故意如此设计的吗?是否认为 302 后的域名是非法的?但实测中即使 302 到一个配置过的合法域名,也一样不执行回调。而且,如果直接尝试下载一个非法域名的话,会进入到 fail 回调中;使用 302 却不触发任何回调,这就很奇怪了。

最后一次编辑于  2017-09-13  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答
帖子已隐藏

1 个回答

  • Mr. ♥
    Mr. ♥
    2017-09-19

    hello?anybody here?

    2017-09-19
    赞同
    回复