if语句针对本地存储的JSON对象中的未定义参数。

问题描述 投票:0回答:1

所以这个脚本应该是验证URL中以GET方法发送的登录信息,从中创建一个字符串,将其追加到URL中,从服务器获取JSON,然后将JSON存储到localStorage中。这一切都能正常工作。

然后它应该根据某些参数来评估用户的状态(登录信息是否正确?如果正确,他们是否是管理员?),这就是它崩溃的地方。

所有的东西都是 "无效的",因为 "myObjDeserialized.valid "被返回为 "UNDEFINED",我不知道为什么,因为JSON显示:[accountid: 1234admin. 1userID: "guard 1用户ID: "guard"有效。"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部分.获取params,并将其写入一个URL中获取json。第2部分.获取外部json第3部分.将该URL返回的json写入LocalStorage中。第4部分.从存储中获取json.第5部分.评估用户状态。第6部分.将用户状态写到标记中。

似乎是第4或第5部分的某些地方出了问题,导致if语句中的变量返回未定义。

我很感激你的帮助。

javascript json serialization local-storage undefined
1个回答
1
投票

UGHHHHHHH。 当然一贴出来我就意识到自己做了什么。

if语句中的"=="应该是"="。

不要紧。

推荐问答
热门问答
最新问答