如何通过API请求具有授权令牌的URL

时间:2017-06-14 15:48:53

标签: javascript php ajax web-applications

我正在尝试开发基于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或会话发出请求,或任何其他新方法,框架。

由于我刚开始进行这种客户端 - 服务器开发,所以真正感谢任何帮助。

0 个答案:

没有答案