0

サーバーへのログイン要求が成功した後、ユーザーをリダイレクトするのに苦労しています。サーバーからの応答は正常で、アラート ボックスに値を表示できますが、別のページにリダイレクトされません。

これが私が使用しているコードです

<script>

    require(["dojo/dom", "dojo/on", "dojo/request", "dojo/dom-form", "dojo/domReady!", "dojo/json"],

        function(dom, on, request, domForm, JSON, cookie){

            var resultDiv = dom.byId("resultDiv");

            on(dom.byId("signinButton"), "click", function(evt){


                var emailAddressVar = document.getElementById('emailInput');
                var passwordVar = document.getElementById('passwordInput');

                if(emailAddressVar != "" && passwordVar != ""){
                    request.post("http://xxx.xxx.xx.xx:8080/com.thinkingpa.restful.web/SecurityResourceService/loginUser",{
                        data: {
                            emailAddress:emailAddressVar.value,
                            password:passwordVar.value                     
                        }
                    }).then(function(response){

                        var jsonResponse = "(" + response + ")";
                        var jsonObject = eval(jsonResponse);

                        for(var value in jsonObject){
                            alert(jsonObject[value]);
                        }

                        alert( "Your username is: " + jsonObject.username);

                        if(jsonObject.successful == "true"){
                            window.location = "http://www.mysite.com";
                        }else if(jsonObject.successful == "false"){
                            resultDiv.innerHTML = "<div class=\"info-box\"> <p> The Email or Password you entered was incorrect. </p><p> <a href=\"sign-up.html\">Register</a> to get an account. </p> <div>";
                        }

                        resultDiv.innerHTML = "<div class=\"error\">" + response + "<div>";
                    });
                }else{
                    resultDiv.innerHTML = "<div class=\"info-box\"> <p> Please Fill Out All The Required Fields </p> <div>";
                } 
            });
        }
    );

</script>
4

1 に答える 1

0

True & false は文字列ではありません。これを試して:

if(jsonObject.successful == true)
    window.location = "http://www.mysite.com";
else
    resultDiv.innerHTML = "<div class=\"info-box\"> <p> The Email or Password you entered was incorrect. </p><p> <a href=\"sign-up.html\">Register</a> to get an account. </p> <div>";

それができない場合は、alert(jsonObject.successful + ' = ' + typeof(jsonObject.successful))

于 2012-10-05T07:33:20.010 に答える