2017-08-17 1 views
0

Hallo ich versuche, eine Anmeldung in HTML zu tun und senden Sie den Benutzer und das Passwort mit Axios zu @RestController und @PostMapping, in diesem Moment bekomme ich Antwort auf den Server aber Das Problem ist die Antwort im Client, weil ich Fehler 400 bekomme, wenn ich versuche, die Antwort im Protokoll zu drucken.Fehler 400 in Axios, wenn ich versuche, zu Spring MVC

Axios:

var url = 'rest/loginParametros'; 
axios.post(url, { 
    user: this.username, 
    password: this.password 
}) 
.then(function (response) { 
    console.log(response); 
}) 
.catch(function (error) { 
    console.log(error); 
}); 

RequestMapping

@org.springframework.web.bind.annotation.RestController 
@RequestMapping("/rest") 
public class RestController { 

private final Log log = LogFactory.getLog(RestController.class); 

@PostMapping("/loginParametros") 
public ResponseEntity<Boolean> loginParametros(@RequestParam(value = "user", required = true) String user, 
        @RequestParam(value = "password", required = true) String password) 
{ 
    log.info("user: " + user + " password: " + password); 
    if(user.equals("hitzu") && password.equals("hitzu")) 
     return new ResponseEntity<>(true, HttpStatus.OK); 
    return new ResponseEntity<>(false, HttpStatus.OK); 
} 
} 

Auch wenn die restService mit Postbote verbrauchen erhalte ich die Antwort

correct

+0

Haben Sie überprüft, dass Sie tatsächlich Benutzer und Passwort senden? Es könnte sein, dass Ihre js-Variablen nicht durch die Zeit, die Sie den Post machen (this.username und this.password) festgelegt werden. Eine Möglichkeit, dies einfach zu überprüfen: Ersetzen Sie einfach diese Variablen mit fest codierten gültigen Benutzernamen und Passwort als Test –

Antwort

0

Der Benutzername/Passwort, das Sie mit Axios senden sind Teil der Anfrage Payload (wird acce ssible mit @RequestBody auf Spring side).

Wenn Sie möchten, dass Ihr Code funktioniert, müssen Sie Benutzername/Passwort als Abfragezeichenfolge übergeben.

var url = 'rest/loginParametros?user=' + this.username + '&password=' + this.password; 

Aber ich empfehle nicht, dies wegen der Sicherheit zu verwenden.

Sie sollten @RequestBody mit einer UserInfo Klasse, die 2 String Felder (Benutzer, Passwort) enthält anstelle Ihres @RequestParam s.

+0

Danke, es funktioniert: D –

Verwandte Themen