Как перенаправить пользователя на другую страницу при использовании fetch и await? - PullRequest
0 голосов
/ 27 декабря 2018

Я пытался перенаправить пользователя на другую страницу после POST-вызова моего сайта api с fetch и await.Я получаю ответ, который говорит GET localhost: 10004 / page.Обычно в $ .ajax или xmlHTTPRequest он перенаправляет автоматически, но при использовании нового синтаксиса выборки и ожидания не перенаправляет автоматически.

Вот мой код.

Я уже пытался использовать redirect = "follow", после этого он не перенаправляется.

fetch('http://localhost:10004/api', {
            method: 'POST', // or 'PUT'
            body: JSON.stringify(obj), 
            headers: {
                'Content-Type': 'application/json'
            },
           redirect: 'follow'
        })
        .then(response => {
            //what to write here to redirect the user
        }).catch(error => {
            console.error('Error:', error);

   });

EDIT: 1 Изменен ключ, перенаправленный на перенаправление.Я хотел бы уточнить, что я хотел добиться перенаправления без использования методов window.location, таких как window.location.replace или window.location.href. Так что через месяц или около того, столкнувшись с проблемой.Я думаю, что загнал проблему в угол, поэтому при использовании api fetch.Браузер отправляет другой запрос на сервер в перенаправленное местоположение со стороны клиента. Но интересная часть заключается в том, что это не запрос документа, а запрос выборки, который браузер предполагает, что он не должен отображаться, и асинхронный на стороне клиента.получает вывод html, но браузер отказывается отображать страницу в окне.

Ответы [ 2 ]

0 голосов
/ 27 декабря 2018

В вашем примере вы используете только один, тогда должно быть два, как показано ниже.

    fetch('https://httpbin.org/post', { method: 'POST', body: 'a=1' })
        .then(res => res.json()) // expecting a json response
        .then(json => {
           console.log(json)
           window.location.href = data.redirect;
          });
0 голосов
/ 27 декабря 2018

вы можете добиться перенаправления, установив window.location Объект:

window.location.href = "https://www.google.com"

https://developer.mozilla.org/en-US/docs/Web/API/Window/location

...