2016-02-02 3 views
0

Я хочу открыть новую вкладку, в которой я делаю вызов функции с моего собственного сервера (один из них ниже). Причина, по которой я хочу сделать это, - это перенаправить пользователя с сервера, а не на интерфейс.Открытие новой вкладки для запроса http в AngularJS

Я не знаю, как это сделать, но моя функция сервера должна проверять, зарегистрирован ли пользователь на 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')) 
    } 
} 

Как открыть новую вкладку из моего контроллера и в этой вкладке вызова для функции на сервере?

См., Что основная проблема заключается не в открытии окна, я уже видел предлагаемые решения, так как после его открытия он делает HTTP-запрос на моем сервере с этой вкладки в ANGULAR.

+0

http://stackoverflow.com/a/11384018/644669 – Zakaria

+0

Возможный дубликат [Открыть URL-адрес в новой вкладке (а не в новом окне) с помощью JavaScript] (http://stackoverflow.com/questions/4907843/open-a-url-in-a-new-tab-and-not-a-new-window-using-javascript) – Zakaria

+1

Как вы называете это MyFunction? Если это ссылка, вы пытались добавить target = "_ blank"? – piyuj

ответ

0

Во-первых, открыть новую вкладку с помощью javascript невозможно. Вы можете открыть новое окно, и если у пользователя будут открываться новые окна в качестве вкладок, вы получите вкладку, а не окно. Чтобы открыть новое окно:

window.open('urlToOpen') 

Это, вероятно, будет лучше, чтобы открыть новое окно с URL для вашего NodeJS маршрута конечной точки, а затем отправить редирект полосу. Если пользователь уже интегрирован в полосу, закройте вновь открытое окно и при необходимости перенаправьте родительское окно.

+0

Он работал с использованием маршрута конечной точки. Идк, почему он работал раньше, теперь это сработало. Благодарю. – gbsojo

0

Непонятно, почему вы хотите сначала открыть вкладку, а затем решить, куда перенаправить ее после факта. Вы можете сделать это следующим образом:

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

... но это, вероятно, будет более разумным, чтобы определить правильный URL в первую очередь, перед открытием окна/новой вкладке.

Смежные вопросы