Ошибка AJAX Laravel ajax: Внутренняя ошибка сервера 500 - PullRequest
0 голосов
/ 15 октября 2019

Я использовал это в моей html-части:

<meta name="csrf-token" content="{{ csrf_token() }}" />

В скрипте я сделал:

$(document).ready(function() {
    $(document).on('change','#user_id', function() {
        try {
            var user_id = $(this).val();
            $('#balance_amount').val("Loading response...");
            $.ajaxSetup({
                beforeSend: function(xhr, type) {
                    if (!type.crossDomain) {
                        xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'));
                    }
                },
            });
            $.ajax({
                url: "{{ URL::to('/getEmpBalance')}}",
                method: 'post',
                data: {
                    'user_id' : user_id
                },
                success: function(result) {
                    console.log("Success "+result);
                    $('#balance_amount').val(result);
                },
                error: function(e, jqXHR, textStatus, errorThrown) {
                    // console.log("Error "+e);
                    // console.log(JSON.stringify(jqXHR));
                    console.log("AJAX error: " + textStatus + ' : ' + errorThrown);
                    $('#transaction_description_editor').html(e);
                }
            });
            //console.log(user_id);
        } catch (e) {
            // console.log(e);
            // console.log(warning);
            // console.log(text);
        }
    });
});

Но после отправки запроса на сообщение ajax выдает ошибку, и когда я проверяю,Я обнаружил

{message: «Метод App \ Http \ Controllers \ AjaxController :: getEmployeeBalance не существует.»,…} Исключение: файл «BadMethodCallException»: «/home/studyn5/exp.studynextglobal.com / vendor / laravel / framework / src / Illuminate / Routing / Controller.php "строка: 68 сообщение:" Метод App \ Http \ Controllers \ AjaxController :: getEmployeeBalance не существует ". trace: [{function: "__call", класс: "Illuminate \ Routing \ Controller", тип: "->"}, {,…}, {,…}, {,…}, {,…},…]

Но это мой контроллер ajax. Я уже упоминал этот метод

public function getEmployeeBalance(Request $request) {
    $user_id = $request->user_id;
    $exp_amount = DB::table('exp_amounts')
                        ->where('user_id', $user_id)
                        ->orderBy('created_at','desc')
                        ->first();

    if ($exp_amount === null) {
        echo "0";
    }
    else {
        $balance_amount = $exp_amount ->total_amount;
        echo $balance_amount;
    }   
}

Ответы [ 3 ]

0 голосов
/ 15 октября 2019

Я думаю, что проблема в функционале эха. Вы пытаетесь отобразить объект, вы можете преобразовать его в json, и после него отобразить вашу переменную. Это приведет к ошибке в будущем.

0 голосов
/ 15 октября 2019

Я бы удостоверился, что все, что связано с именами, правильно (даже вплоть до заглавных букв). Если вы говорите, что ничего не изменилось, убедитесь, что ваш контроллер и имя класса совпадают.

Вы говорите, что он работает нормально на локальной, а не в онлайн-версии. Единственный раз, когда я испытывал подобное, это если моя производственная ОС и моя локальная ОС отличаются. В разных ОС стили именования процессов и определенные символы по-разному.

Было бы очень полезно узнать различия между двумя системами, а также увидеть все, что связано с любыми файлами, например, просмотр скриншота вашей IDE, чтобы увидетьВаше имя файла, а затем имя вашего класса. Поэтому, если бы вы могли опубликовать следующее, было бы полезно выяснить это.

  • Файл сценария с функцией ajax
  • Снимок экрана маршрутов web.php с подозрительным маршрутом в поле зрения
  • Контроллер, справа от открывающих тегов PHP
  • Снимок экрана каталога приложения, в котором расширен маршрут к AjaxController.
0 голосов
/ 15 октября 2019

Я думаю, что, возможно, ваш маршрутизатор не определен правильно.

Можете ли вы показать свой файл router.php?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...