我正在尝试开发基于girder平台(数据管理平台)的网络应用程序。在开发过程中,我遇到了一些困扰我的问题很长一段时间。让我简要解释一下我的工作,如果有任何我理解的担心,请指出它,因为我刚开始。
事情就是这样,
在字体结尾我使用AMI(一个javascript库)来处理图像虚拟化,并且方法是告诉(向梁服务器发出请求)AMI包含图像的URL地址显示为附件。 (例如。http://girderDomain:port/api/v1/file/imageID/download?contentDisposition=attachment
梁的API)
当此网址没有任何权限时,一切正常。当需要权限(授权用户登录时生成token
)时,纯URL无法正常工作,因此我尝试使用ajax向requestHeader(token
)发出请求,如下所示:
$.ajax({
type:'GET',
url:'http://girderDomain:port/api/v1/file/imageWithPermissionID/download?contentDisposition=attachment',
crossDomain:true,
processData: false,
beforeSend:function(xhr){
// xhr.setRequestHeader("Access-Control-Allow-Origin:", "*");
// xhr.setRequestHeader("girderToken", token);
},
success:function (d,s,xhr) {}
});
虽然我还有一些错误尚未解决,但是ajax是我脑海中唯一的方式。
整个过程就像下面的伪代码:
//***AMI***//
var t2 = ["imageID",....]; //////No permission need image
files = t2.map(function(v) {
return 'http://girderDomain:port/api/v1/file/' + v+'/download?contentDisposition=attachment';
});
AMI.display(files)
正如您所见,没有权限图像显示简单易行,并且通过ajax请求获得权限图像将是:
//***ajax to download permission file first***//
$.ajax({
//url:'http://girderDomain:port/api/v1/file/imageWithPermissionID/download?contentDisposition=attachment'
//set requestHeader("girderToken",token);
//success:function(){
//download this permission file to request domain tempFolder as A
}
});
/***AMI***/
var t2 = ["A"];
files = t2.map(function(v) {
return 'http://requestDomain/tempFolder/A';
});
AMI.display(files);
这看起来很愚蠢,所以我想知道是否有人有任何想法请求具有权限的文件,例如可能在cookie或会话中保存token
并使用某种方式通过cookie或会话发出请求,或任何其他新方法,框架。
由于我刚开始进行这种客户端 - 服务器开发,所以真正感谢任何帮助。