2016-10-26 4 views
0

Когда я отправляю запрос на отправку xhr на свой сервер. Он отвечает перенаправлением 302, но я могу только зарегистрировать весь redirect html и не могу заставить браузер перенаправить на новый URL-адрес.Как перенаправить запрос xhr

server.js

const Hapi = require('hapi'); 
const Inert = require('inert'); 

const server = new Hapi.Server(); 
const port = 8888; 

server.connection({ port }); 

server.register([ Inert ],() => { 
    server.route([ 
    { 
     method: 'get', 
     path: '/', 
     handler: (request, reply) => { 
     reply.file('index.html'); 
     } 
    }, 
    { 
     method: 'get', 
     path: '/login', 
     handler: (request, reply) => { 
     reply.file('login.html'); 
     } 
    }, 
    { 
     method: 'post', 
     path: '/login', 
     handler: (request, reply) => { 
     reply.redirect('/'); 
     } 
    } 
    ]); 

    server.start(() => { 
    console.log('Server running on ', server.info.uri); 
    }); 
}); 

index.html

<!doctype html> 
<html> 
    <body> 
    <h1> Home </h1> 
    <a href="/login"> go to login </a> 
    </body> 
</html> 

login.html

<!doctype html> 
<html> 
    <body> 
    <button id="home">home</button> 
    <script> 
     function goHome() { 
     var xhr = new XMLHttpRequest(); 
     xhr.onreadystatechange = function() { 
      if(xhr.readyState === 4 && xhr.status === 200) { 
      console.log('Response: ', xhr.response); 
      } 
     } 
     xhr.open('post', '/login'); 
     xhr.send(); 
     } 
     document.getElementById('home').addEventListener('click', goHome); 
    </script> 
    </body> 
</html> 

Есть ли способ, чтобы перенаправить '/', не делая это на стороне клиента?

Заранее спасибо за помощь

ответ

1

Есть ли способ, чтобы перенаправить «/», не делая это на стороне клиента?

Номер

Запрос инициируется XMLHttpRequest получит ответ, который будет обработан XMLHttpRequest. Если этот ответ является перенаправлением, он будет соблюден, и ответ на новый запрос будет обработан XMLHttpRequest.

Ajax - это действие по созданию HTTP-запроса от JS, не выходя из страницы.

Если вы хотите покинуть страницу, не используйте Ajax.

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