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

Ajax callback-request.

Object Storage Arubacloud
0 głosów
129 wizyt
pytanie zadane 14 grudnia 2020 w JavaScript przez Wiciorny Ekspert (270,190 p.)

Hej.
Jako, że pracuje dosyć od niedawna u siebie w projekcie z javascript/ajaxem - tak dosyć staro, ale bawie się w Vanillia JS  i taki trochę oldschool z jquery ;).
Pojawia mi się pewien problem i pytanie, w jaki sposób można wykonać "callback" z ajax.get, który jest obsługiwany jako error tzn:
- potrzebuje w momencie wystąpienia error- > powiedzmy kiedy status będzie 401, cofnąć zmiany wprowadzone przez użytkownika, macie pomysł jak to zrobić? 
Czy jeśli w error- wywołam funkcje która zrobi np response.abort() to czy to będzie coś na tej zasadzie? 
Dla przykładu : 

$.ajax({
 type: "GET",
 url: base_url+'/ajax/fetch/counts/',
 dataType: 'json',
 data: {},
 error: function(xhr, error){
       // tutaj chcialbym odwrócić zmiany które został wprowadzone np na tabeli za pomoca callback 

 },
 success:  // wysłanie aktualizacji tabeli - > to akurat mam. 
});

 

komentarz 14 grudnia 2020 przez ScriptyChris Mędrzec (190,190 p.)
Chcesz cofnąć zmiany na serwerze dla Ajaxa, który zwrócił błąd?
komentarz 14 grudnia 2020 przez Wiciorny Ekspert (270,190 p.)
pracuje na jsp-> javie i tam z taga strutsowego  leci request z rządaniem zmiany np. edycji wiersza tabeli i chcę teraz wykonać obsługę callback -> w przypadku niepowoedznia, aby wprowadzone zmiany zostały cofnięte.
Nie wiem czy da się to zrobić np. poprzez abort na ajax response? Czy może  cofnąć sesje strony?

Wiesz, ja tez nie uważam że jest to poprawne tzn obsługa błędu swoją drogą chodzi po prostu o wywołanie callback z cofnięciem zmiany, zastanawiam się jak to po prostu zrobić
komentarz 14 grudnia 2020 przez ScriptyChris Mędrzec (190,190 p.)

Metody Ajax'owe w jQuery wrapują obiekt XHR. Ten z kolei posiada metodę abort, ale ona służy do anulowania wysłania requesta z klienta, a nie do anulowania akcji po stronie serwera w momencie otrzymania od niego responsa.

Wątpię, aby z klienta dało się ot tak cofnąć zmiany na serwerze. Chyba, że wystawisz jakiś endpoint, który będzie miał implementację odwrotną do docelowego endpointa i w ten sposób - wysyłając inny request - odwrócisz zmiany.

komentarz 14 grudnia 2020 przez Wiciorny Ekspert (270,190 p.)
generalnie to jest moje 'zadanie", i tak to było robione.
Po prostu w callback mam obsłuzyć sytuacje cofnięcia zmian wprowadzonych do tabeli  stąd jest to dla mnie zagwostka, bo raczej uznawałem że samo wystapenie "Error" w Ajax defultowo spowoduje że zmiany nie zajdą
komentarz 14 grudnia 2020 przez ScriptyChris Mędrzec (190,190 p.)
Jeśli backend przed rzuceniem błędu w odpowiedzi na Ajaxa wykonał jakąś logikę, to front nie ma na to wpływu i nawet o tym nie wie. Chyba, że w response dodasz taką informację. Możesz w tym error callbacku wysłać kolejny Ajax, który serwer obsłuży w taki sposób, że odwróci wykonanie poprzedniego Ajaxa. Innego sposobu nie znam.

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

Podobne pytania

+1 głos
0 odpowiedzi 821 wizyt
pytanie zadane 13 listopada 2020 w Systemy CMS przez Bartłomiej Sikora Użytkownik (730 p.)
0 głosów
1 odpowiedź 472 wizyt
0 głosów
1 odpowiedź 621 wizyt
pytanie zadane 1 marca 2019 w PHP przez niezalogowany

92,576 zapytań

141,426 odpowiedzi

319,652 komentarzy

61,961 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!

...