【问题标题】:Opening a new tab to make an http request in AngularJS在 AngularJS 中打开一个新选项卡以发出 http 请求
【发布时间】:2016-02-02 23:29:28
【问题描述】:

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

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

【问题讨论】:

标签: javascript angularjs node.js


【解决方案1】:

首先,无法使用 javascript 打开新标签页。您可以打开一个新窗口,如果用户有新窗口作为选项卡打开,那么您将获得一个选项卡而不是一个窗口。 打开一个新窗口:

window.open('urlToOpen')

最好打开带有指向您的 NodeJS 路由端点的 URL 的新窗口,然后将重定向发送到条带。如果用户已经集成在条带上,则关闭新打开的窗口并在必要时重定向父窗口。

【讨论】:

  • 它仅使用端点路由就可以工作。 Idk 为什么它以前不起作用,它现在起作用了。谢谢。
【解决方案2】:

我不清楚为什么要先打开标签,然后再决定将其重定向到哪里。你可以这样做:

var foo = window.open('[some url]');
if ([some logic]) {
    foo.location.href='[a different url]'
} 

...但在打开新窗口/标签之前首先确定正确的 URL 可能更合理。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-12
    • 2016-09-19
    • 2014-06-24
    • 1970-01-01
    • 2015-04-19
    • 1970-01-01
    • 2012-11-05
    相关资源
    最近更新 更多