我想打开一个新标签,在其中我从我自己的服务器调用一个函数(下面是一个)。我想这样做的原因是能够从服务器而不是前端重定向用户。
我不知道该怎么做,但是我的服务器功能应该检查用户是否注册了Stripe,如果不是,那么我必须将他重定向到Stripe的网站。我想使用response.redirect重定向。
我的服务器在NodeJS中编程,功能如下:
MyFunction = function (req,res) {
if (user has already integrated with stripe) {
return res.send(200)
}
else {
res.redirect('https://connect.stripe.com/oauth/authorize?response_type=code&client_id=CLIENT_ID&scope=read_write'))
}
}
如何从我的控制器中打开一个新选项卡,并在该选项卡中调用服务器中的该功能?
看,主要问题是没有打开窗口,我已经看到了建议的解决方案,它是如何在打开它之后,从ANGULAR的那个选项卡向我的服务器发出http请求。
答案 0 :(得分:0)
首先,无法使用javascript打开新标签页。您可以打开一个新窗口,如果用户有新窗口作为选项卡打开,那么您将获得一个选项卡而不是一个窗口。 要打开一个新窗口:
window.open('urlToOpen')
最好使用指向NodeJS路由端点的URL打开新窗口,然后将重定向发送到条带。如果用户已经集成在条带上,则关闭新打开的窗口并在必要时重定向父窗口。
答案 1 :(得分:0)
我不清楚为什么要先打开标签,然后决定将其重定向到事后的位置。你可以这样做:
var foo = window.open('[some url]');
if ([some logic]) {
foo.location.href='[a different url]'
}
...但在打开新窗口/标签之前,首先确定正确的URL可能更合理。