如何将动态构建的字符串作为http头在http.call中与流星一起传递

How do you pass a dynamically built string as a http header in HTTP.call with meteor?

本文关键字:http call 头在 流星 一起 动态 构建 字符串      更新时间:2023-09-26

我不得不使用传统的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: ""}});

当我这样做的时候,身份验证服务器没有看到头进来。怎么了?我只是想用我使用传入的实际密码构建的字符串变量来替换硬编码的字符串:"token:appname:127.0.0.1:actualUserPassword"。

这是一个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});