Как отправить данные поста и перейти на URL с angularjs? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть приложение с angularjs 1.6 и Java 8. Я хочу отправить данные POST в другое приложение и перейти по URL-адресу, который определяет это приложение.

Домен состоит в том, что мое приложение отправляет данные гражданинакоторые хотят воспользоваться услугой.Другое приложение, возьмите эти данные и покажите представление в форме со всеми полями, автоматически заполненными данными, которые я отправил.Я должен сделать это, потому что пользователь просит об этом.

Я пробовал несколько способов сделать это, например, с xmlHttpRequest, но когда я отправил сообщение, страница пользователя не перенаправляется (несмотря на получение статуса302).

Возможное решение, которое я пробовал

$http({
                method: "POST",
                headers: { 
                    ...some headers...
                },
                data : someData,
                url: someExternalUrl
            })
            .then(function(response, headers) {
                //catch the location header of response
                var externalUrl = headers("Location");
                $window.location.href = externalUrl;
            }, 
            function(response) {
                //if fail
            });

Другое:

            var url = someUrl;
            var params = JSON.stringify(jsonObject);
            http.open('POST', url, true);

            //Send the proper header information along with the request
            //http.setRequestHeader('Content-type', 'application/x-www-form-urlencoded');
            //Some other headers

            http.onreadystatechange = function() {//Call a function when the state changes.
                if(http.readyState == 4 && http.status == 200) {
                    alert(http.responseText);
                }
            }
            http.send(params);

Как я могу это сделать?

Спасибо!

1 Ответ

0 голосов
/ 22 ноября 2018

302 не будет перенаправлять ваш браузер, если вы используете xmlHttpRequest (или получите).Вам нужно извлечь данные и выполнить window.location = 'newUrlHere'; всякий раз, когда ваш почтовый вызов сделан.

Вы можете сделать это несколькими способами, вот два из них:

  • Ваш метод POSTвозвращает 302, вы смотрите на заголовки, получаете URL и устанавливаете местоположение окна;
  • Ваш метод POST возвращает объект или строку в теле, которое имеет новое местоположение, которое вам нужно перейти.Получи это и сделай window.location = newLocation;, и все готово.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...