Chcę wysłać do kontrolera nowy e-mail podany przez użytkownika za pomocą ajaxa
$.ajax({
type: 'PUT',
url: '/changeEmail?',
data: {
email: function() {
return $('#email').val();
}
},
success: function(result) {
console.log('function');
if(result === true) {
console.log("true");
} else {
console.log("false");
}
}
});
do kontrolera(przykładowy kod)
@PutMapping("/changeEmail")
public boolean changeEmail(
@RequestParam("email") String email
) {
System.out.println("email: " + email);
return true;
}
Jednak podczas wysyłki konsola przeglądarki wyrzuca mi
jquery-3.2.1.min.js:4 PUT http://localhost:8080/signIn net::ERR_TOO_MANY_REDIRECTS
Ajax próbuje wysłać dane na całkiem inny adres, niż ten który podałem w ajaxie.
W ajaxie podałem
/changeEmail
a on próbuje mi wysłać na
/signIn
O co tu chodzi? Taki jest rezultat https://zapodaj.net/f1b8ed0b2a16b.png.html Ajax nie potrafi obsłużyć 'zapytania' typu PUT i próbuje zwrócić domyślną stronę na którą przekierowuje zawsze po wpisaniu błędnego URL.
EDIT: Jest to problem ajaxa, ponieważ zmodyfikowałem kod w taki sposób, aby forma była wysyłana bezpośrednio(bez javascript) i wtedy działa. Ajax nie potrafi wywoływać innych kontrolerów niż typy GET i POST. Prawdopodobnie trzeba coś skonfigurować.