我一直在绞尽脑汁,试图弄清楚如何从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();IE不支持请求标头,据称是出于安全原因。由于没有能力在这个不幸流行的浏览器中下载内容,我完全被卡住了。
我的问题是-这些其他应用程序到底是如何处理这个问题的?他们是否使用了某种类型的服务器端代理,并通过自己的后端收集所有驱动器请求?在这一点上,这似乎相当困难。或者,有什么方法可以在启动时访问驱动器文件,但我不知道?
我看到一些解决方案需要在两台服务器上都有文件,据我所知,这不是一种选择。Google Drive是否有能力在没有请求头的情况下通过CORS进行响应,或者是否有其他我不知道的API支持从Drive域中的iframe进行某种回调?
在这一点上,我几乎要死在水里了。任何建议都将不胜感激。很抱歉不得不问任何与微软产品有关的问题。
发布于 2012-11-21 01:16:30
如果问题出在IE不允许您添加或不传递Authorization头,您可以尝试使用access_token URL参数传递访问令牌,该参数具有与Authorization头相同的行为:
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl + '&access_token=' + accessToken);
xhr.onload = function() {
callback(xhr.responseText);
};
xhr.send();https://stackoverflow.com/questions/13434704
复制相似问题