我的应用信息中心上有一个按钮,上面写着"访问电子学习门户网站"。
单击该按钮可调用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
}
答案 0 :(得分:3)
如果你有url客户端(通过方法回调函数),你可以简单地使用
location.href = returnedUrlFromMethod;
这会将用户重定向到该网址。