这里我有全局变量userId
,我想在signInUserFunction()
内更新它,以便在其他函数中使用。我尝试使用 var
、window
来定义它,但所有这些都没有帮助。该变量不会更新。据我所知,它是关于 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/