• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Ajax nie potrafi wysłać zapytania innego niż GET

Object Storage Arubacloud
0 głosów
110 wizyt
pytanie zadane 25 lipca 2017 w Java przez Jonki Dyskutant (8,180 p.)

No po prostu no nie mogę. Od 4 dni męczę się z wysłaniem danych ajaxem inną metodą niż GET i nie daję rady. Tworzę projekt w Spring Boot. Mam stworzony kontroler z mapowanym adresem

@PutMapping(value = "/changeEmail")
    public boolean changeEmail(
            @RequestBody ChangeEmailDTO changeEmailDTO
    ) {
        System.out.println("email: " + changeEmailDTO.getEmail());
 
        return true;
    }

Ten kontroler ma przyjąć adres e-mail wysłany przez ajaxa

function changeEmail() {
        console.log("Event");
        $.ajax({
            type: 'PUT',
            url: '/changeEmail',
            data: {
                email: $('#email').val()
            },
            success: function (result) {
                console.log('function');
            }
        });
    }

Jednak jedyny efekt jest taki, że w konsoli wywala mi

PUT http://localhost:8080/signIn net::ERR_TOO_MANY_REDIRECTS
send    @   jquery-3.2.1.min.js:4
ajax    @   jquery-3.2.1.min.js:4
changeEmail @   settings.js:58
submitHandler   @   settings.js:52
d   @   jquery.validate.min.js:4
(anonymous) @   jquery.validate.min.js:4
dispatch    @   jquery-3.2.1.min.js:3
q.handle    @   jquery-3.2.1.min.js:3

DTO posiada tylko jedno pole

public class ChangeEmailDTO {
 
    @IsValidEmail
    @ExistsEmail(ifExistsReturn = false)
    @Getter @Setter private String email;
}

Po próbie wysłania danych przez ajaxa przerzuca mnie na kontroler błędu

@Controller
public class PageNotFoundController implements ErrorController{
 
    @RequestMapping("/error")
    public ModelAndView showPageError() {
        return new ModelAndView("redirect:/signIn");
    }
 
    @Override
    public String getErrorPath() {
        return "/error";
    }
}

Screen z narzędzia przeglądarki co wysyłane i odbierane: https://zapodaj.net/f1b8ed0b2a16b.png.html
Jak wspomniałem, kontroler poprawnie potrafi odebrać z ajaxa tylko zapytanie GET. Przy każdym innym przerzuca na kontroler błędu.
Dodatkowo wspomną, że jeśli chciałbym wysłać dane bezpośrednio z formy, to wtedy nie ma problemu z żadnym zapytanie.
Co ten ajax odwala, to ja nie wiem.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
0 odpowiedzi 134 wizyt
pytanie zadane 23 lipca 2017 w JavaScript przez Jonki Dyskutant (8,180 p.)
0 głosów
0 odpowiedzi 272 wizyt
pytanie zadane 22 lipca 2017 w JavaScript przez Jonki Dyskutant (8,180 p.)
0 głosów
1 odpowiedź 603 wizyt
pytanie zadane 30 marca 2018 w Java przez miro Pasjonat (23,870 p.)

92,555 zapytań

141,403 odpowiedzi

319,553 komentarzy

61,939 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...