Таким образом, этот сценарий должен проверять информацию входа в систему, отправленную в виде метода GET в URL, создавать из нее строку, добавлять ее к URL, чтобы получить JSON с сервера, а затем сохранять JSON в localStorage. , Это все работает отлично.
Затем предполагается оценить статус пользователя на основе определенных параметров (была ли информация для входа в систему правильной? Если да, то являются ли они администратором?).
Все выглядит как «недействительно», потому что «myObjDeserialized.valid» возвращается как «НЕ УКАЗАНО», и я не уверен, почему, поскольку JSON показывает: [accountid: 1234 admin: 1 userID: "guard" valid: "true" ]
вот код.
<!DOCTYPE html>
<html>
<head>
<script>
window.onload = function()
{
///////////////
// Part 1.
///////////////
//gets parameters
var getParameters = window.location.search.substring(1);
//appends parameters to desired URL.
var fullURL = 'http://hh.offsitevision.com:26000/httpHandHeldService.aspx?' + getParameters;
alert('fullURL is: ' + fullURL);
///////////////
// Part 2.
///////////////
function readTextFile(file, callback)
{
var rawFile = new XMLHttpRequest();
rawFile.overrideMimeType("application/json");
rawFile.open("GET", file, true);
rawFile.onreadystatechange = function() {
if (rawFile.readyState === 4 && rawFile.status == "200")
{
callback(rawFile.responseText);
}
}
rawFile.send(null);
}
// apply the "fullURL" from before to the call to return data.
readTextFile(fullURL, function(text){
var data = JSON.parse(text);
//console.log(data);
///////////////
// Part 3.
///////////////
//sets data for the object.
//var myObj = myJSON;
//turns the object into a string.
var myObj_serialized = JSON.stringify(data);
//Stores the object in localStorage.
localStorage.setItem("data", myObj_serialized);
///////////////
// Part 4.
///////////////
//Gets the object out of storage (and converts it back form a string to an object).
var myObjDeserialized = JSON.parse(localStorage.getItem("data"));
console.log(myObjDeserialized);
//Checks data in local object and assess it, then displays appropriate code.
///////////////
// Part 5.
///////////////
var userStatus = "";
alert('deserialized! ' + myObjDeserialized.valid)
if (myObjDeserialized.valid == true)
{
alert("User is validated.");
userStatus = "User is Validated. "
if (myObjDeserialized.admin == 1)
{
alert("User is an Admin. " );
userStatus = userStatus + "<br>And the User is an Admin. "
}
else{
alert("User is not Validated.");
userStatus = userStatus + "<br>but they are NOT an admin."
}
}
else{
alert("User is not Validated.");
userStatus = "The login information you provided is not correct."
}
///////////////
// Part 6.
///////////////
//Write the assesment information to <p ID="writeFromLocalStorage"></p>
document.getElementById("writeFromLocalStorage").innerHTML += userStatus;
});
}
</script>
</head>
<body>
<h1>hello world.</h1>
<p ID="writeFromLocalStorage"></p>
</body>
</html>
Часть 1. получить параметры и записать их в URL, чтобы получить json. Часть 2. get External JSON Part 3. Запишите json, возвращенный с этого URL в LocalStorage. Часть 4. Получить json из хранилища. Часть 5. Оценка статуса пользователей. Часть 6. записать статус пользователя в разметку.
Похоже, что что-то в части 4 или 5 сломано, что приводит к тому, что переменные в операторах if возвращаются неопределенными.
I ценим помощь.