使用CORS列出Google云端硬盘上的文件

时间:2013-10-17 17:28:06

标签: javascript google-drive-api cors

这可能是一个愚蠢的问题,但我不熟悉Web编程。我正在尝试使用客户端JavaScript和CORS与Google云端硬盘进行通信。我第一次使用jsclient库并且工作正常:

request = gapi.client.drive.files.list( {'q': " trashed = false " } );

使用CORS,我的代码如下:

var xhr = new XMLHttpRequest();
xhr.open('GET','https://www.googleapis.com/drive/v2/files');

var mysearch = encodeURIComponent("q=trashed=false");

xhr.open('GET',"https://www.googleapis.com/drive/v2/files?" +mysearch,true);
xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
xhr.onload = function() { handleResponse(xhr.responseText); };
xhr.onerror = function() { handleResponse(null); };
xhr.send();

我试过了:

var mysearch = encodeURIComponent("q=trashed=false");
var mysearch = encodeURIComponent("trashed=false");
var mysearch = encodeURIComponent("q='trashed=false'");

它们都返回所有文件的列表。如果我没有搜索字符串,我也会收到所有文件。

我也希望有其他搜索参数,使用&,但我不能只使用一个。 如何格式化mysearch字符串?

1 个答案:

答案 0 :(得分:0)

仅对参数的值部分进行编码:

var url = 'https://www.googleapis.com/drive/v2/files?q=' + encodeURIComponent("'trashed=false'")