За последние 24 часа нас посетили 23496 программистов и 1664 робота. Сейчас ищут 877 программистов ...

jQuery AJAX Error: 500

Тема в разделе "JavaScript и AJAX", создана пользователем Freakmeister, 28 июл 2014.

  1. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Накатал скрипт, который должен заставить лайки на форуме работать без перезагрузки страницы. На локалке работает, залил на хостинг и получаю алерт с кодом ошибки 500. Выгуглить решение пока не удалось, выгуглил только, что это "Internal Server Error". Пробовал удалять htaccess отовсюду, пробовал перемещать файл в корень сайта и менять к нему путь - бестолку. Подскажите из-за чего это может быть.

    Код (Text):
    1. $(document).on('click', '.jsThank', function(event) {
    2.     event.preventDefault();
    3.     var Obj = $(this);
    4.     var Container = $(this).parent('td').find('.jsThanksContainer');
    5.     var Uri = $(this).attr('href').replace('./viewtopic.php?', '');
    6.     
    7.     $.ajax({
    8.         type: "POST",
    9.         cache: false,
    10.         dataType: 'json',
    11.         url: "thanks-ajax.php",
    12.         data: Uri,
    13.         success: function(result){
    14.             if (result['error']) {
    15.                 alert(result['error']);
    16.             } else {
    17.                 Obj.replaceWith(result['btn']);
    18.                 Container.html(result['content']);
    19.             }
    20.         },
    21.         error: function(result){
    22.             alert('Error: '+result['status']+': '+result['responseText']);
    23.         }
    24.     });
    25. }); 
     
  2. dapperkop

    dapperkop Активный пользователь

    С нами с:
    26 сен 2013
    Сообщения:
    890
    Симпатии:
    0
    Ну тут как бы не аякс виноват... Ошибка скрипта, который вызываешь
     
  3. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Ты прав, дело в php. Хотя не понятно почему оно на локалке работает, а не хостинге нет. Было бы понятней, если б мне возвращало не тупо "500", а php-ошибку.
     
  4. Freakmeister

    Freakmeister Активный пользователь

    С нами с:
    20 дек 2009
    Сообщения:
    888
    Симпатии:
    5
    Разобрался. Я не залил ещё один скрипт с функциями и у меня шло обращение к несуществующей функции. Реально как-то в этом случае получить PHP-ошибку из AJAX, вместо "500"?
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    500 говорит о том, что произошла ФАТАЛЬНАЯ ошибка — php рухнул, сообщение легло в логи.

    есть трюки: stackoverflow, Котеров. но всё равно не для всех случаев и не факт, что получится вывести сообщение в этом http response. для лучшего логирования только пригодно.