Gdrive文件得到JS没有工作在ie

时间:2016-01-27 11:44:13

标签: internet-explorer google-drive-api google-picker

我使用此代码从google驱动器选择器中检索文件。但是在 IE 浏览器上,它会在通话时返回错误。

function downloadFile(file, callback) {
if (file.downloadUrl) {
    var accessToken = gapi.auth.getToken().access_token;
    var xhr = new XMLHttpRequest();
    xhr.open('GET', file.downloadUrl);
    xhr.setRequestHeader('Authorization', 'Bearer ' + accessToken);
    xhr.onload = function() {
        callback(xhr.responseText);
    };
    xhr.onerror = function() {
        callback(null);
    };
    xhr.send();
} else {
    callback(null);
}}

在Chrome和Firefox中运行正常,但在IE 11和+中返回"访问被拒绝"。  Error print screen

1 个答案:

答案 0 :(得分:0)

如果您使用的是IE6或任何旧浏览器,则需要使用特定的rpc_relay文件并将其放在应用程序的同一域中,然后修改其创建代码。

支持较旧的浏览器

  1. 下载此文件:https://www.google.com/ajax/picker/resources/rpc_relay.html
  2. 将文件放在与应用程序相同的域中的某个位置。
  3. 使用更正后的路径修改Picker创建代码:

    var picker = new google.picker.PickerBuilder().
        addView(google.picker.ViewId.IMAGE_SEARCH).
        setDeveloperKey(developerKey).
        setCallback(pickerCallback).
        setRelayUrl('http://www.yoursite.com/somedir/rpc_relay.html').
        build();
    
  4. 有关Picker API的更多信息,请参见其documentation