meteor方法返回外部url,如何从客户端链接到外部url

时间:2015-10-01 12:08:23

标签: url meteor methods routes

我的应用信息中心上有一个按钮,上面写着"访问电子学习门户网站"。

单击该按钮可调用Meteor.method,该方法查询电子学习门户API以接收访问链接(单点登录)。

我的工作正常。

我能解决的问题是如何将该链接从服务器发送到客户端,以便我可以将它们重定向到它。我无法绕过同步,异步,回调等等。我不明白为什么这个方法不会向客户端发送结果。我的结果是未定义的

从用户的角度来看:点击按钮 - >电子学习门户网站在新标签页(或相同的标签页)中打开

从应用程序的角度来看:点击按钮 - > template.event - > meteor.call - >运行服务器方法 - >检索网址(我已经成功地做到了这一点) - >将用户发送到检索到的网址(例如)http://www.google.com

这是我的代码:

事件:

Template.dashboard.events({
  'click #lmsAccess': function(e, t) {
    e.preventDefault();

    Meteor.call('lmsLink', function(error, result) {
      if(error) {
        console.log(error.reason);
        return;
      }
      console.log(result); //returns as undefined
    });

  }
});

方法

if (Meteor.isServer) {

  Meteor.methods({
    'lmsLink': function () {
      //removed all my irrelevant variables from here for stack question

      HTTP.call( verb, 'http://sandbox.wceaapi.org/'+ endPoint, {
        headers: {
            "Request-Time": timeStamp,
            "Api-Key": key,
            "Signature": hash
          }
      }, function( error, response ) {
        if ( error ) {
          console.log( error );
        } else {
          console.log( response );
          var result = JSON.parse(response.content);
          var accessLink = result.records.accessLink;
          console.log(accessLink);
          return accessLink;
        }
      });
    }// end lmsLink
  });//end method
}

1 个答案:

答案 0 :(得分:3)

如果你有url客户端(通过方法回调函数),你可以简单地使用

location.href = returnedUrlFromMethod; 

这会将用户重定向到该网址。