目前,我正在构建一个为 chromeOS 提供 OneDrive 文件系统支持的 javascript 应用程序。不幸的是,由于预检失败,我在通过 OneDrive API 下载文件时遇到了问题。
深埋在Microsoft API 文档中,提到了针对 javascript 应用程序的 CORS 请求的解决方法,因为预检将失败。为了规避 302 重定向,文件下载必须分两步执行:首先获取下载 url,然后通过该 url 下载文件。这很好用,因为简单的GET
请求不需要预检检查。
回到文件系统。根据chrome.fileSystemProvider API 文档:
结果必须通过多次调用successCallback以块的形式返回。
这可以通过使用对download-urlRange
的请求的标头来实现,OneDrive API 使用部分范围下载GET
实际上支持该标头。但是,现在请求不再简单,因此需要进行预检检查,最终失败。
所以基本上,解决方法失败了,因为解决方法尝试解决的问题仍然存在于解决方法中。
我该如何克服这个问题?由于带宽和隐私问题,我显然不想通过代理发送请求。我是否可以Range
通过首先下载整个文件然后以字节大小的块将其提供给fileSystemProvider
? 大约 5 年前,我遇到了一个非常相似的问题,但不幸的是,它并没有让我更进一步。