2016-10-26 5 views
0

Wenn ich eine xhr Beitrag Anfrage an meinen Server senden. Es antwortet mit einer Umleitung 302, aber ich kann nur die gesamte Umleitung html protokollieren, und kann den Browser nicht auf die neue URL umleiten.Wie von einer xhr Anfrage umleiten

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> 

Gibt es eine Möglichkeit zu '/' zu umleiten, ohne es zu Client-Seite zu tun?

Vielen Dank im Voraus für die Hilfe

Antwort

1

Gibt es eine Möglichkeit zu ‚/‘ zu umleiten, ohne es zu Client-Seite zu tun?

Nr

A von XMLHttpRequest initiierte Anfrage eine Antwort erhalten, die von XMLHttpRequest verarbeitet werden. Wenn diese Antwort eine Weiterleitung ist, wird sie verfolgt und die Antwort auf die neue Anfrage wird von XMLHttpRequest behandelt.

Ajax ist die Handlung, eine HTTP-Anfrage von JS zu machen, ohne die Seite zu verlassen.

Wenn Sie die Seite verlassen möchten, verwenden Sie nicht Ajax.

Verwandte Themen