dja*_*ham 7 cors google-drive-api google-api-js-client
我一直在试图弄清楚如何从Internet Explorer中的Drive下载文件.似乎跨域安全问题阻止了这一点.
使用XMLHttpRequest的简单"GET"在Chrome和Firefox中运行良好,因为它支持请求标头,允许浏览器请求CORS响应,如以下代码行所示:
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.send();
Run Code Online (Sandbox Code Playgroud)
据称出于安全原因,IE不支持请求标头.由于无法在这个不幸的流行浏览器中下载内容,我完全陷入困境.
我的问题是 - 世界上这些其他应用程序如何解决这个问题?他们是否使用某种服务器端代理,并通过自己的后端汇集所有驱动器请求?在这一点上,这似乎相当艰巨.或者,有没有办法在启动时访问驱动器文件,我不知道?
我已经看到一些解决方案需要两台服务器上的文件,据我所知,这不是一个选项.Google云端硬盘是否能够在没有请求标头的情况下使用CORS进行响应,或者是否有其他我不知道的API支持从Drive域中的iframe进行某种回调?
在这一点上,我几乎死在水里.任何提示将非常感谢.很抱歉不得不问任何与MS产品有关的问题.
如果问题在于 IE 不允许您添加或不传递标Authorization头,您可以尝试使用access_tokenURL 参数传递访问令牌,该参数的行为与标头相同Authorization:
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl + '&access_token=' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.send();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3412 次 |
| 最近记录: |