![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
W ajaxie obsługuje usuwanie rekordów z bazy i w przypadku błędu (np. usuwania rekordu z powiązanym kluczem obcym) mam zwróconą stronę z błędem 500 (widzę to z poziomu konsoli).
To co chcę osiągnąć to: - przechwycenie tego wyjątku - zwrócenie zamiast strony błędu, odpowiedzi w formacie json W kontrolerze mam tak ale cały czas zwraca stronę z błędem 500
-------------------- gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet. Zarabianie bez wysiłku na domenach bez ruchu: prolink. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
A co Ty chcesz przechwytywać? Skoro masz zawsze 500, to ślesz request pod zły adres, a nie masz żadnego błędu w zapytaniu, bo nawet tam nie dochodzisz. Więc po prostu to popraw.
Ten post edytował Damonsson 16.07.2014, 14:26:20 |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Mam błąd np. kiedy usuwam rekord z kluczem obcym. I wtedy pluje coś w stylu: 'cascading remove : integrity constraint violation 1451' chodzi mi o to żeby użytkownik dostał info jako json a nie żeby ajax zwracał error 500
-------------------- gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet. Zarabianie bez wysiłku na domenach bez ruchu: prolink. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
No to pokaż tego AJAXa którego wysyłasz.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 623 Pomógł: 144 Dołączył: 22.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
To może lepiej sprawdzić dlaczego wywala 500? A nie próbować go catchować. Relacje masz dobrze "połapane"?
No i czy musisz rekord fizycznie usuwać? Czy nie wygodniej dać mu jakiś status i ustawiać np na deleted. Ten post edytował ohm 16.07.2014, 14:51:18 |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
AJAX w php wywoływany z poziomu JS to jest właśnie ten fragment co zamieściłem czyli metoda usunKlientaAction()
Jeśli zaś chodzi o JS, to po prostu odwołanie się do tej metody
-------------------- gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet. Zarabianie bez wysiłku na domenach bez ruchu: prolink. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Wyłapało? Oprócz Success też masz możliwość dodania error jeszcze |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
@Damonsson: 500 Internal Server Error oznacza błąd w skrypcie (nieprzechwycony wyjątek w tym przypadku). Chyba pomyliłeś z 404 Not Found.
@amii: Popraw aplikację, bo zakładasz, że jej działanie oparte jest na błędzie. W zależności od tego co dokładnie potrzebujesz: 1. Albo sprawdź czy dany obiekt w ogóle da się usunąć w danym momencie i na podstawie tego zdecyduj czy w ogóle pokazać linka do usunięcia czy nie. Oczywiście w samej akcji usuwającej również powinieneś mieć tego typu zabezpieczenie. 2. Albo popraw swój kod tak, by w ogóle działał, tj. przed usunięciem danego klienta usuń wszystkie dane które mają z nim relację. Tutaj @ohm również dobrze zauważył, że podobnie jak w większości przypadków tak i tutaj dużo lepiej jest oznaczyć dane jako usunięte - usuwanie danych jest niebezpieczne. PS. Obiekt Requesta powinieneś przekazać jako argument akcji; nie masz żadnego zabezpieczenia przed CSRF, a co za tym idzie Twój kod jest mało bezpieczny. |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 355 Pomógł: 533 Dołączył: 15.01.2010 Skąd: Bydgoszcz Ostrzeżenie: (0%) ![]() ![]() |
Dobrze prawisz, myślałem o 500, a napisałem o 404
![]() Ten post edytował Damonsson 16.07.2014, 16:36:23 |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 728 Pomógł: 76 Dołączył: 12.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Crozin - poprawiłem ten błąd z usuwaniem i kluczami obcymi poprzez nadanie nullable=true, onDelete="SET NULL" dla tabeli z kluczami obcymi.
-------------------- gry flash online
Dobry hosting i tanie odnowienia domen firma: masternet. Zarabianie bez wysiłku na domenach bez ruchu: prolink. |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 20:35 |