Błąd serwera 500, wywołany przez AJAX

0

Witam,
kończę składać projekt strony sklepu oparty o CMS Joomla, w którym po dodaniu produktów do koszyka osoba po zatwierdzeniu okejki, wysyła dane za pomocą ajax'a jako typ JSON, dane do modelu który je odbiera. Całość działa dobrze, ale..

Po dodaniu większej ilości produktów (zwiększeniu ciągu JSON'a) zauważyłem że pojawia się błąd 500 podczas wysyłania takiego długiego łańcucha znaków.
Produkty czy plik który je odbiera nie mają tutaj nic do znaczenia (literówki itd. są wypoprawiane). Gdy łańcuch znaków zostanie skrócony (jest na swój sposób sporty - 2500) to ładuje się normalnie.

Co zrobiłem:
- Doczytałem że jest możliwość wydłużenia czasu obsługi zapytania, przez web.config ale to nie pomogło
- Stosowałem inne formy zapisu JSON'a - bez skutku
- Typ był ustawiany zarówno na GET jak i POST

url: 'index.php?option=com_mcontact&view=send',
			error: function(qXHR, textStatus, errorThrow){console.info(errorThrow)},
			data: {
				infodata: jQuery(form).serialize(),
				format: 'raw', 
				dataType: "POST",
				type:'formsend'
			}

Bardzo dziękuję za każdą odpowiedź, gdy wątek jest w złym dziale - proszę o pomoc to zmienię go.

0
  1. Przeanalizuj jak wygląda Twój request (narzędzia deweloperskie w przeglądarce lub np programik fiddler).
  2. Odpal debugger I śledź krok po kroku działanie.
  3. Sprawdź jakie dane otrzymujesz po stronie serwera i wrzucaj jakieś logi, przy danych akcjach, albo opakuj to w try/catch'a.
  4. Profit, sukces i łapki w góre dla mnie :)

BTW co Ty tam przesylasz tym ajaxem że masz takie spore ciągi znaków? W sklepie masz zazwyczaj Id produktu, ilość, może jakieś info o rabatach... No ogólnie raczej mało ludzi kupuje więcej niż 100 produktów roznego typu w jedynym zamówieniu. A nawet jeśli taki payload nie powinien być duży. Napisz co tam przesylasz dokładnie, może da się to jakoś usprawnić.

0
axelbest napisał(a):
  1. Przeanalizuj jak wygląda Twój request (narzędzia deweloperskie w przeglądarce lub np programik fiddler).
  2. Odpal debugger I śledź krok po kroku działanie.
  3. Sprawdź jakie dane otrzymujesz po stronie serwera i wrzucaj jakieś logi, przy danych akcjach, albo opakuj to w try/catch'a.
  4. Profit, sukces i łapki w góre dla mnie :)

BTW co Ty tam przesylasz tym ajaxem że masz takie spore ciągi znaków? W sklepie masz zazwyczaj Id produktu, ilość, może jakieś info o rabatach... No ogólnie raczej mało ludzi kupuje więcej niż 100 produktów roznego typu w jedynym zamówieniu. A nawet jeśli taki payload nie powinien być duży. Napisz co tam przesylasz dokładnie, może da się to jakoś usprawnić.

Dziękuję za odpowiedź,
budowałem sklep w oparciu o coś koło 6-8 parametrów produktu - podstawowych, w momencie zapisu do koszyka, aby za każdym razem nie uruchamiać bazy, zapisywał się do pamięci link do obrazka, tytuł i adres produktu - tutaj akurat działa to sprawnie i szybko. Natomiast po analizie kodu to głównie te 3 elementy zwiększały ciąg znaków.

Fakt - o tym wiedziałem, ale z tego co do wczoraj sądziłem, to to że ajax nie ma przy metodzie POST, limitu w transmisji ładowania adresu.
Sprawę poprawiłem usuwając te 3 elementy z adresu i wysyłając jedynie klucze produktu, co polecam przy wątkach z podobnym problemem - sprawdzić ilo-znakowy jest adres.
Domyślam się że tutaj to nawet może nie chodzić o ajaxa (bo dane są przekazywane poprawnie, co o parametr reakcji serwera na długi adres. Zapewne przy wydłużeniu czasu działania obsługi skryptu przez serwer - można byłoby przesłać dłuższe adresy i je ładować sprawnie.

Wątek do zamknięcia.

1 użytkowników online, w tym zalogowanych: 0, gości: 1