Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法在angularJS登录页面上显示错误消息_Javascript_Angularjs - Fatal编程技术网

Javascript 无法在angularJS登录页面上显示错误消息

Javascript 无法在angularJS登录页面上显示错误消息,javascript,angularjs,Javascript,Angularjs,我有一个spring boot应用程序,其中配置了angularjs,在用于身份验证的ajax调用中,如果身份验证失败,将执行错误回调,在这个错误回调中,我将收到一条错误消息,作为数据的一部分,我必须将其显示在登录页面上,但该页面不起作用。下面是错误回调方法 onerror = function(data){ console.log(data); -- the output of data is as below "timestamp":1498971200809,"s

我有一个spring boot应用程序,其中配置了angularjs,在用于身份验证的ajax调用中,如果身份验证失败,将执行错误回调,在这个错误回调中,我将收到一条错误消息,作为数据的一部分,我必须将其显示在登录页面上,但该页面不起作用。下面是错误回调方法

onerror = function(data){
           console.log(data); -- the output of data is as below 

"timestamp":1498971200809,"status":401,"error":"Unauthorized","message":"check your password","path":"/demo/authenticate"}

           vm.error= true; // setting error to true
           vm.errMessage = data.message; // here data.message gives me 
                                            undefined

           $location.path("/customlogin");
       }
customlogin.html代码是

    <body ng-controller="ContactLoginCtrl as Contactctrl">

        <div ng-if="Contactctrl.error"> -- this is always evaluating false 
                    {{Contactctrl.errMessage}}
                </div>
   </body>
下面控制台输出的屏幕截图


我认为您在错误的函数中设置了值,或者在函数中设置的值不是您想要做的。在
onusererror
中设置
error
errMessage
的值。正如您在评论中所说,您正在打印
onusererror
中的值,这意味着您从
AuthenticateService.login(用户名、密码)获得
success
并且无法调用
onerror

   onerror = function(data){

       vm.error= true;
       vm.errMessage = data.message;
       alert(vm.errMessage);
       $location.path("/customlogin");
   }



   onusersuccess = function(data){
       console.log("userData"+JSON.stringify(data))
        $location.path("/home");


    };

    onusererror = function(data){
         console.log(data);
         vm.error= true;
         vm.errMessage = data.message;
         alert(vm.errMessage);
         $location.path("/customlogin");

    };

请发布controllerconsole结果数据的完整代码,并查看是否包含“消息”field@RohanKawade,控制台结果数据包含消息字段,下面是输出{“timestamp”:1498976864439,“status”:401,“error”:“Unauthorized”,“message”:“check your password”,“path”:“/demo/authenticate”}如果我的猜测正确,您从
onusererror
函数中得到错误,但不是从
onerror
中得到错误。请参阅,您还可以在
onusererror
中打印
数据
,并在
onerror
中设置值。这可能是我认为您应该解析结果JSON的问题…可能是服务返回一个结果字符串更改了代码,如上所述,这是相同的问题401(未经授权)--这是身份验证失败错误,仅此而已,我必须显示错误消息请告诉我哪个函数在错误
onerror
onusererror
上运行?请正确观察您在
onerror
中提到的
警报。这是否有效,表示警报是否有效?是的,警报有效,下面是被警报的数据{“时间戳”:1498971200809,“状态”:401,“错误”:“未经授权”,“消息”:“检查密码”,“路径”:“/演示/验证”}
   onerror = function(data){

       vm.error= true;
       vm.errMessage = data.message;
       alert(vm.errMessage);
       $location.path("/customlogin");
   }



   onusersuccess = function(data){
       console.log("userData"+JSON.stringify(data))
        $location.path("/home");


    };

    onusererror = function(data){
         console.log(data);
         vm.error= true;
         vm.errMessage = data.message;
         alert(vm.errMessage);
         $location.path("/customlogin");

    };