Javascript 正在读取SkyDrive文件的内容 我所拥有的

Javascript 正在读取SkyDrive文件的内容 我所拥有的,javascript,web-applications,xmlhttprequest,onedrive,Javascript,Web Applications,Xmlhttprequest,Onedrive,我的浏览器中运行的WEB应用程序必须访问SkyDrive文件。 我使用WL.js提供的漂亮界面访问当前已验证用户的文件列表: function openFromSkyDrive() { WL.fileDialog({ mode: 'open', select: 'single' }).then( function (response) { var files = res

我的浏览器中运行的WEB应用程序必须访问SkyDrive文件。 我使用WL.js提供的漂亮界面访问当前已验证用户的文件列表:

   function openFromSkyDrive() {
        WL.fileDialog({
            mode: 'open',
            select: 'single'
        }).then(
        function (response) {

            var files = response.data.files;
            for (var i = 0; i < files.length; i++) {
                var file = files[i];
                log(file.name);
                WL.download({ "path": file.id + "/content" }, onDownloadFileCompleted).then(
                function (response) {
                   var r = response;
                },
                function (responseFailed) {
                  log("Error downloading file: " + responseFailed.error.message);
                });


                //TRIED TO USE SIMPLE GET CALL TOO, DIDN'T WORKED AS WELL
               /* var url = file.link;
                WL.api({ path: url,

                    method: "GET"
                }).then(
                     function (response) {
                         log("Downloaded : " + response.name + ", ID: " + response.id)
                     },
                    function (responseFailed) {
                        "Error calling API: " + responseFailed.error.message;
                    }
                ); */

            }
        },
       .....
    );
    }
一切都很好,干净

问题 当我使用WL.download时,文件的下载会在浏览器中启动,因此浏览器会加载文件,但我需要的是将文件内容加载到我的javascript中,以便我可以直接从应用程序处理内容

请注意,我已经尝试将WL.api方法用于GET和其他路径,我尝试了所有可用的in-file对象,但失败了:或者返回错误,或者什么都没有

WinJS似乎提供了XHR调用方法,但我不能使用它,因为我正在编写web应用程序,WinJS仅用于桌面

问题
如何处理从skydrive下载/下载的文件的内容?是否可以不运行手动帧创建和XHR调用定义

您可以像这样使用WL.api方法来创建一个允许您访问文件的链接:

WL.api({
    path: file.id + "/content",
    method: "GET"
}).then(
    function(response) {
        //URL will be in response.location, so load file content using jQuery or similar
        $.get(response.location, /* etc */);
    },
    function(err) {
        alert(err);
    }
);

奇怪的是,response.location返回的URL不需要任何身份验证,因此您可以通过电子邮件发送给其他人,他们就可以访问该文件。这与文件在OneDrive中是否设置为共享无关。从安全的角度来看,这似乎有些奇怪,但我可能遗漏了一些东西。

我目前面临着同样的问题。你找到解决方案了吗?没有,实际上我像云解决方案一样传递给DropBox,它有更好的JS支持。我想我找到了一个解决方案:file.source返回Skydrive上文件的URL。这里唯一的问题是,由于跨站点的问题,用Javascript阅读可能不起作用。@Hydrix:dropbox JS api没有问题,我已经使用过它,并将数据直接下载到JS代码中。是的,dropbox很棒-我也在使用它。