javascript - 无法更新 JavaScript 全局变量

标签 javascript jquery html asynchronous

这里我有全局变量userId,我想在signInUserFunction()内更新它,以便在其他函数中使用。我尝试使用 varwindow 来定义它,但所有这些都没有帮助。该变量不会更新。据我所知,它是关于 AJAX 异步的。那么,我能用它做什么呢?

是的,我知道用 JS 进行身份验证不好,我对此很陌生。所以,我只是创建随机方法来改进。

var userId = 1;

function signInUser() {
  $.getJSON('http://localhost:8887/JAXRSService/webresources/generic/getAllUsers', function(data) {
  var items = [];
  var i = 0;
  $.each(data, function(firstname, value) {

    var str = JSON.stringify(value);
    data = JSON.parse(str);
    var innerId;
    for (p in data) {
      innerId = data[p].id;
      if ($('#nameSignIn').val() == data[p].first_name && $('#passwordSignIn').val() == data[p].password) { //
        userId = innerId;
        window.location.href = "content.html";
        break;
      } else {
        i++;
        if (i == data.length) {
          alert("Ощибка в логине или пароле!")
        }
       }
      }

    });
  });
}

最佳答案

如何判断是否已设置?看起来设置后,您会立即导航到不同的页面。当您到达该页面时,您将看到一个全新的窗口。

在离开之前尝试提醒该值。

已编辑:以下是将其传递到其他页面的方法(但您不应该在真正的应用程序中执行此操作)

        window.userId=innerId;
        alert(window.userId);

        //this isn't a very secure way to do this. I DON'T recommend this
        window.location.href = "content.html?id=" + innerId ;

然后在另一个页面中,您可以从文档中访问它。位置:

alert(document.location.toString().split("?id=")[1]);

关于javascript - 无法更新 JavaScript 全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33905164/

相关文章:

jquery 输入全选焦点

javascript - 第一个 li 的 JQuery 选择器

javascript - 日期格式被错误解释

javascript - 如何动态更新其他页面的内容

javascript - 访问控制台中 Javascript 函数内的多个变量之一。

jquery - 防止双重表单提交

html - 将矩形图像显示为正方形裁剪图像 css

javascript - 删除记录时找不到元素

javascript - 在 jQuery 中卡住表头

jquery - 使用 jQuery 动态更新 CSS 属性