小编dja*_*ham的帖子

Google云端硬盘和CORS跨域请求

我一直在试图弄清楚如何从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产品有关的问题.

cors google-drive-api google-api-js-client

7
推荐指数
1
解决办法
3412
查看次数

当我尝试保存缩略图时,Google云端硬盘更新不断出现错误

Base64字符串检查正常.我能够将其导出到另一个网站并再次下载为我的图像.当我尝试使用Drive Javascript api进行更新时,它只是不断返回此错误:

Invalidvaluefor:Notavalidbase64bytestring
Run Code Online (Sandbox Code Playgroud)

我也确实使字符串URL安全.按此页面 https://google-api-client-libraries.appspot.com/documentation/drive/v2/python/latest/drive_v2.files.html

我在这里做错了,文档说发送Base64,字符串是有效的,字符串在整个过程中是完整的,但谷歌不接受它?

我正在使用javascript api,我想可能有一个错误使用javascript api发送缩略图.

这是请求

Request URL:https://www.googleapis.com/upload/drive/v2/files/?uploadType=multipart
Request Method:POST
Status Code:400 Bad Request

**Request Headers**
:host:www.googleapis.com
:method:POST
:path:/upload/drive/v2/files/?uploadType=multipart
:scheme:https
:version:HTTP/1.1
accept:*/*
accept-encoding:gzip,deflate,sdch
accept-language:en-US,en;q=0.8
authorization:Bearer ya29.AHES6ZQr...YXDacdY4
content-length:14313
content-type:multipart/mixed; boundary="--mpart_delim"
origin:https://www.googleapis.com
x-javascript-user-agent:google-api-javascript-client/1.1.0-beta
x-origin:https://app.pinteract.com
x-referer:https://app.pinteract.com

**Query String Parameters**
uploadType:multipart

**Request Payload**
----mpart_delim
Content-Type: application/json

{"id":null,"title":"Test Pinup.pint","mimeType":"application/vnd.pinteract.pint","thumbnail":{"mimeType":"image/png","image":"iVBORw0KGgoAAAANSUh...UVORK5CYII%3D"}}
----mpart_delim
Content-Type: application/vnd.pinteract.pint
Content-Transfer-Encoding: binary

{
"header" :
{"id":"215A660A"}
"members" :
[
{"id":"100523752012631912873"}
],
"manifest" :
[
{"id":"0000","ele":[],"own":"100523752012631912873","dtc":1371679680000,"txt":"Δ Created","typ":0}
],
"elements" :
[
{"id":"0F54","x":560,"y":264,"bak":"#44ff44","own":"100523752012631912873","srt":"544","sta":0,"wid":120,"hgt":120,"dtc":0,"rec":"","txt":"This is Note"}
]
}
----mpart_delim--

**Response Headers** …
Run Code Online (Sandbox Code Playgroud)

google-drive-api

4
推荐指数
1
解决办法
952
查看次数