2016-07-04 16 views
1

Ich bin neu in angularjs es zu lernen, bin binden aber einige Probleme konfrontiert mich, tatsächlich sind sie zwei Probleme:

Erstes Problem :$http.post funktioniert nie, da keine Aktion und keine Antwort vorhanden ist. $http.get ist jedoch in der Lage zu arbeiten.

Zweites Problem: Wegen des ersten Problems, das ich durch meine $http.get geruhsamen webservice nennen, aber der Web-Service-Antwortstatus immer -1. Obwohl der Webservice seine Arbeit erfolgreich erledigen kann und immer Antwortdaten null sind, kann mir jeder helfen.

dies mein Winkelteil:

var app = angular.module('myLogin',[]); 
        app.controller('loginController',function($scope,$http){ 
        $scope.login=function(){ 
        var username = $scope.username; 
        var password = $scope.pass; 

        $http.get("http://localhost:8080/spring/webservice/login/"+username+"/"+password) 

        .success(function(data,status){ 
        alert("data : "+data); 
         alert("Data Inserted Successfully"); 
        window.location.href = "chatScreen.html"; 

        }) 
        .error(function(data,status){ 
         alert("Status: "+status); 
         window.location.href = "login.html";  

        }); 

         } 
       }); 

und das ist meine Web-Service:

/** 
    * web service part 
    */ 
    @RequestMapping(value="webservice/login/{name}/{pass}", method=RequestMethod.GET) 
    @ResponseStatus(value = HttpStatus.OK) 
    public ResponseEntity<String> weblogin(@PathVariable("name") String name, @PathVariable("pass") String pass) 
    { 
     System.out.print("username : "+name); 
     System.out.print(pass); 
     UserService service = new UserService(); 
     List<UserBean> users = service.getUsers(); 
     if(users!=null) 
     { 
      for(UserBean user : users) 
       if((user.getUsername().equals(name)) && (user.getPassword().equals(pass) )) 
       { 
        System.out.print("success"); 

        username = name; 
        //model.addAttribute("result", "Welcome to chat..");      

        MessageService messageService = new MessageService(); 
        List<MessageBean> messages = messageService.getMessage(username); 
        String userMessages=""; 
        if(messages != null) 
        { 
         for(MessageBean msg : messages) 
          userMessages +="\n"+msg.getSender() + ": " + msg.getMessage()+" \n"; 
        } 
        else 
         userMessages +="You have no Messages !"; 

        //model.addAttribute("whoSendToMe", userMessages); 

        return new ResponseEntity(HttpStatus.OK); 
       } 
     } 

     return new ResponseEntity<String>("faild", HttpStatus.NOT_FOUND); 

    } 
+0

posten Sie Ihren Code, bitte – pzelenovic

+0

haben Sie Ihren Service getestet mit einem anderen Tool, um zu sehen, ob es Anfragen erhalten kann? –

+0

nein ich didn, t es testen –

Antwort

2

beziehen dies das Sie geben kann Idee, wie Ihr Problem zu nähern: -

$http({ 
method: 'GET', 
url: '/someUrl' 
}).then(function successCallback(response) { 
    // this is asynchronous call back 
    // you will get your data here comming from rest 
}, function errorCallback(response) { 
    // called asynchronously if an error occurs 
}); 

Teilen Sie Ihren Code, damit wir versuchen, es zu lösen

+0

ich versuchte es, aber keine Änderungen am Ergebnis –

+0

es immer Fehler errorCallback Funktion ich weiß nicht, wo ist der Fehler –

+0

es möglicherweise URL ist falsch, so ist es Aufruf Fehler oder kann Methode von '$ http ist nicht dasselbe wie REST-Methode. und ich werde Ihnen vorschlagen, wenn Sie keine kniffligen Daten wollen dann verwenden '.factory' oder' .service' Methode –

0

Wenn Sie die Methode GET verwenden und eine -1 zurückgegeben wird, bedeutet das normalerweise, dass Sie eine falsche URL angeben.

Was dann POST-Methode Sie diese Syntax verwenden sollte:

return $http({ 
      method: 'POST', 
      url: 'index.php/email/createDeliverable', 
      data: $.param({ 
       csrfTokenName: --your token--, 
       userName: user.name, 
       password: password 
      }), 
      headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 
     }); 

Erinnern Sie sich den Header Teil hinzuzufügen.

Ihr Server eine CSRF-Token-Validierung, in diesem Fall, dass Sie es übergeben müssen müssen, un mein Beispiel sehen: csrfTokenName: --Euer token--,

+0

Wie ist es möglich, dass die URL falsch ist, während es den Web-Service erreicht und die Daten in die Datenbank einfügen –

+0

In der Projekt Ich arbeite an, empfange ich eine -1 von einem Dienst, der eine json-Datei zurückgibt, wo ich die falsche Adresse gab. Ich denke, es kann dasselbe sein, wenn der Dienst keinen Wert zurückgibt. Sie haben wahrscheinlich einen Dienst zum Schreiben in DB und einen separaten zum Lesen? – gianni

Verwandte Themen