打开一个新选项卡以在AngularJS中发出http请求

时间:2016-02-02 15:14:09

标签: javascript angularjs node.js

我想打开一个新标签,在其中我从我自己的服务器调用一个函数(下面是一个)。我想这样做的原因是能够从服务器而不是前端重定向用户。

我不知道该怎么做,但是我的服务器功能应该检查用户是否注册了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请求。

2 个答案:

答案 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可能更合理。