Оператор if нацелен на неопределенный параметр в локально сохраненном объекте JSON - PullRequest
1 голос
/ 29 апреля 2020

Таким образом, этот сценарий должен проверять информацию входа в систему, отправленную в виде метода 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 ценим помощь.

1 Ответ

1 голос
/ 29 апреля 2020

UGHHHHHH. Конечно, как только отправлю это, я понимаю, что я сделал.

"==" в операторах if должно быть "=" s

Неважно.

...