如何使用meteor将动态构建的字符串作为HTTP.call中的http标头传递?

时间:2015-03-26 21:35:07

标签: javascript meteor

我不得不使用带有用户名和密码的遗留Web服务,并返回xml,指示凭据是否有效。遗留服务要求我使用包含用户密码的请求传递http标头。因此,为了使其工作,我不得不在标题中硬编码密码(actualUserPassword),如下所示:

  var urlToCall = "https://ourlegacyauthserver/auth?uid=" + username);
  var result = HTTP.call("GET", urlToCall, {headers:{"token:appname:127.0.0.1:actualUserPassword":""}});

当我在服务器上硬编码用户的正确密码时,这是有效的,但我真正需要做的是使用密码变量动态构建该标头,如下所示:

 var urlToCall = "https://ourlegacyauthserver/auth?uid=" + username);
 var headerString = "token:appname:127.0.0.1:" + password;
 var result = HTTP.call("GET", urlToCall, {headers: {headerString: ""}});

当我这样做时,auth服务器没有看到标题进来。出了什么问题?我只是想替换硬编码的字符串:"令牌:appname:127.0.0.1:actualUserPassword"使用传入的实际密码构建的字符串变量。

1 个答案:

答案 0 :(得分:1)

这是一个javascript对象的关键问题。试试这个:

var urlToCall = "https://ourlegacyauthserver/auth?uid=" + username);
var headerString = "token:appname:127.0.0.1:" + password;
var headerObject = {};
headerObject[headerString] = "";
var result = HTTP.call("GET", urlToCall, {headers: headerObject});