【问题标题】:How to redirect from an xhr request如何从 xhr 请求重定向
【发布时间】:2017-03-09 11:07:16
【问题描述】:

当我向我的服务器发送一个 xhr 发布请求时。它以 302 重定向回复,但我只能记录整个重定向 html,并且无法让浏览器重定向到新的 url。

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>

登录.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>

有没有办法在不做客户端的情况下重定向到'/'?

提前感谢您的帮助

【问题讨论】:

    标签: node.js redirect xmlhttprequest hapijs


    【解决方案1】:

    有没有办法在不做客户端的情况下重定向到'/'?

    没有。

    重定向意味着“可以在此处找到您要求的内容”而不是“将浏览器导航到此 URL”。如果浏览器要导航到它最初请求的 URL,它只会导航到重定向的 URL。

    由 XMLHttpRequest 发起的请求会得到一个由 XMLHttpRequest 处理的响应。如果该响应是重定向,则会被跟踪,并且对新请求的响应将由 XMLHttpRequest 处理。

    Ajax 是在不离开页面的情况下从 JS 发出 HTTP 请求的行为。

    如果你想离开页面,不要使用 Ajax。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 2013-08-03
      • 1970-01-01
      • 2010-09-21
      • 2019-01-13
      • 2016-01-07
      相关资源
      最近更新 更多