JavaScript XMLHttpRequest() 和重定向

标签 javascript html redirect

到目前为止,我想向服务器发送一个 XMLRequest,然后将用户重定向到首页 我有:

var posts = new XMLHttpRequest();
var api="XXXXXXXXXX";
posts.open("GET", api+user+"/"+password+"/"+id+"/"+latitude, true);
posts.send();

window.location = "index.html"

如果我最后只运行没有重定向的代码,效果很好,但如果我有重定向,API GET 请求就会失败。有人可以向我解释我错过了什么吗?

最佳答案

请求是异步的,这意味着 window.location 不会在执行前等待请求完成。 这会导致离开当前页面并且浏览器取消请求。

要解决此问题,您必须等待请求完成才能离开。您可以通过监听请求的状态变化来做到这一点。

var posts = new XMLHttpRequest();
posts.onreadystatechange = function() { // listen for state changes
  if (posts.readyState == 4 && posts.status == 200) { // when completed we can move away
    window.location = "index.html";
  }
}
posts.open("GET", api+user+"/"+password+"/"+id+"/"+latitude, true);
posts.send();

关于JavaScript XMLHttpRequest() 和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33354877/

相关文章:

javascript - 如何过滤图像表

html - 我的 CSS 样式表只有一个有效,而 DIV 背景图像无效?

jquery - AJAX 重定向困境,如何获取重定向 URL 或如何设置重定向请求的属性

javascript - 为网格指定多个反向条件

javascript - 在 Cordova 中加载外部 URL 时为 "net::ERR_CACHE_MISS"

c# - 使用 itextsharp 将 HTML 转换为 PDF

cakephp - CakePHP 中的重定向和渲染有什么区别?

java - flashAttributes 在 websphere 重定向期间丢失

javascript - 错误: Unknown provider: $animateProvider from ngAnimate

javascript - 正则表达式匹配正斜杠对,但不转义或在后续 http ://之间