0

为仪表板项目处理 WSO2 UES 应用程序,在此,需要使用带有 HEADER 数据的 GET 方法调用 REST api 。( var headers ={"授权",getSecureToken}; )

http://jaggeryjs.org/documentation.jag?api=get没有提供足够的信息

<%      
    var getSecureToken = session.get("wso2-token");     
    var headers ={"Authorization",getSecureToken};      
    var userListUrl = "https://00.000.00.00:09000/users/1.0.0/users/list";      
    var userListData = get(userListUrl,headers,"json");     
    log.info(userListData);
%>

任何帮助将不胜感激。:-)

更新: GET方法功能:

function FnMakeRequestGETCall(URL, METHOD, BASICAUTH, CONTENTTYPE, ACCEPTTYPE, INPUTDATA){
        var VarBasicAuthCode = session.get('wso2-token');
        xhr = new XMLHttpRequest(); 
        xhr.open(METHOD, URL);  
        xhr.setRequestHeader("Authorization" , VarBasicAuthCode);   
        xhr.setRequestHeader("Content-Type", CONTENTTYPE);
        xhr.setRequestHeader("Accept", ACCEPTTYPE);
        xhr.send();
        var VarResponse = xhr.responseText;
        return VarResponse;
    }

var userListUrl = "https://99.999.99.999:9445/users/1.0.0/users/list";
var headers ={"Authorization",getSecureToken};

var usersList = FnMakeRequestGETCall(userListUrl,"GET","Basic RlN4S2RrZEpNN3VaYWhHN0NFcEtlaTZEa3RzYTpXbmUxd29seHp2UTNSQ2RZbXhUUTJ2WkJTd0Fh","application/x-www-form-urlencoded; charset=UTF-8","application/json; charset=utf-8","");   

 log.info(usersList);
4

1 回答 1

0

我认为您可以使用 get() 而不是创建新的 XMLHttpRequest()。我认为您的 get() 的问题在于它是异步的。所以 usrsList 变量不会立即获得任何赋值。所以你基本上要做的是使用 get() 并传递一个成功函数。

一般 get() 用法如下。

get(url[, data][, headers][, data-type][, success(data, xhr)]) 

在您的情况下, get() 应该如下所示。

get(userListUrl,null,headers,'text',function(usersList,xhr){
   log.info(usersList);
});

如果您使用 XMLHttpRequest() 是因为具有多个标头添加功能,您可以使用 get 执行相同的操作。您要做的就是将这些添加到您的 headers 对象中。

var headers ={
  "Authorization":VarBasicAuthCode,
  "Content-Type" : CONTENTTYPE,
  "Accept" : ACCEPTTYPE
}; 

如果这不起作用,请告诉我。

(注意:我认为您在问题更新中添加了您的 IP 地址......:D)

于 2016-01-06T14:29:56.837 回答