Javascript 正在读取SkyDrive文件的内容 我所拥有的
我的浏览器中运行的WEB应用程序必须访问SkyDrive文件。 我使用WL.js提供的漂亮界面访问当前已验证用户的文件列表: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
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很棒-我也在使用它。