我有一个使用Google驱动器选择器的角度应用程序,允许用户选择要下载的文件。在google developer凭据区域中,我将javascript来源和引荐来源网址设置为使用localhost:3000,因此选择器可以很好地打开。但是,从这一点来看,我似乎无法获取所选文件。这是尝试下载文件的角度代码。

$scope.$watchCollection('googleFiles', function (newGoogleFiles) {
    if (newGoogleFiles.length > 0) {
        $scope.filename = newGoogleFiles[newGoogleFiles.length - 1].name;
        $scope.fileUrl = newGoogleFiles[newGoogleFiles.length - 1].url;
        var deferred = $q.defer();

        $http.get($scope.fileUrl, { responseType: 'arraybuffer'})
            .success(function (data) {
                console.log(data);
                deferred.resolve(data);
            });
        return deferred.promise;
    }
});


我没有得到文件,而是得到-XMLHttpRequest无法加载https://www.google.com/a/##############/edit?usp%3Ddrive_web&ltmpl=docs。所请求的资源上没有“ Access-Control-Allow-Origin”标头。因此,不允许访问原始“空”。

我猜想我需要在$ http.get请求中为该文件设置一些内容,但我不知道是什么。有人知道吗谢谢。

最佳答案

您正在处理的是“ CORS”(跨源资源共享)。

“ Access-Control-Allow-Origin”标头是必须在服务器上设置的标头。您可能可以登录google应用设置,并告诉它可以预期的“来源”(例如:localhost,www.yourwebsite.com)。

10-04 17:58