首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Google Drive和CORS跨域请求

Google Drive和CORS跨域请求
EN

Stack Overflow用户
提问于 2012-11-18 04:57:16
回答 1查看 4.7K关注 0票数 8

我一直在绞尽脑汁,试图弄清楚如何从Internet Explorer的Drive中下载文件。似乎跨域安全问题正在阻止这一点。

使用XMLHttpRequest的简单'GET‘在Chrome和Firefox中运行良好,因为它支持请求头,这允许浏览器请求CORS响应,如以下代码行所示:

代码语言:javascript
复制
   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进行某种回调?

在这一点上,我几乎要死在水里了。任何建议都将不胜感激。很抱歉不得不问任何与微软产品有关的问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-21 01:16:30

如果问题出在IE不允许您添加或不传递Authorization头,您可以尝试使用access_token URL参数传递访问令牌,该参数具有与Authorization头相同的行为:

代码语言:javascript
复制
var xhr = new XMLHttpRequest();
xhr.open('GET', file.downloadUrl + '&access_token=' + accessToken);
xhr.onload = function() {
   callback(xhr.responseText);
};
xhr.send();
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13434704

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档