Код возврата запроса API Ajax 500 в laravel apiresource

я пытаюсь сделать запрос API, используя ajax на laravel, но он продолжает выдавать мне ошибку кода 500, я уже тестирую URL-ссылку, сгенерированную из URL-адреса ajax в браузере, и она работает нормально, но когда она использует функцию ajax, она сохранит код возврата 500.

это мой js

$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name = "csrf-token"]').attr('content')
    }
});

document.getElementById("infoEmpty").style.display = 'none';
document.getElementById("infoError").style.display = 'none';

$.ajax({
    url: "/api/prospec-survey",
    data: {"change_code":"A", "change_state_code":2, "change_active_state":1},
    method: 'GET',
    dataType: "text json",
    type: 'GET',
    success: function(data){
        $("table tbody").html('')
        data.forEach(function(item, index){
            $("table tbody").append(
                `<tr>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.survey_nomor}</td>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.survey_date}</td>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.contract_id}</td>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.contract_nama}</td>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.class_code}</td>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.user_name}</td>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.route_desc}</td>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.locatioin_komplek}</td>
                    <td style = "border-right: 1px solid gray; text-align: center;">${item.pp_name}</td>
                    <td style = "text-align: center;"><a href = "/customer-care/new-connection/survey-new-customers/print-survey-order/{${item.survey_nomor}}" class = "badge bg-primary"><i class = "bi bi-printer-fill"></i></a></td>
                </tr>`
            )
        })
        document.getElementById("table").style.display = 'block';
    },
    error:function(rr){
        document.getElementById("infoError").style.display = 'block';
        document.getElementById("infoEmpty").style.display = 'none';
        document.getElementById("table").style.display = 'none';
    }
});

и маршруты API

Route::apiResource('prospec-survey', ProspectiveCustomersSurveyController::class);

и это дает мне ошибку, как это

jquery.min.js:4 GET http://127.0.0.1:8001/api/prospec-survey?change_code=A&change_state_code=2&change_active_state=1 500 (Internal Server Error)

но если я использую URL-адрес из ajax в браузере напрямую, он возвращает данные, как и ожидалось, как показано ниже.

Illuminate\Pagination\LengthAwarePaginator {#1823 ▼
#items: Illuminate\Support\Collection {#1805 ▶}
#perPage: 10
#currentPage: 1
#path: "http://127.0.0.1:8001/api/prospec-survey"
#query: []
#fragment: null
#pageName: "page"
+onEachSide: 3
#options: array:2 [▶]
#total: 54
#lastPage: 6
}

есть идеи, как это исправить? любое предложение может действительно помочь

Необходимо опубликовать вкладку «Журналы и ошибки из сети» в инструментах разработчика.

Mohamed El-Refaie 28.03.2022 16:16
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
1
18
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Хорошо, после некоторого быстрого обзора я обнаружил, что ошибка исходит от самого контроллера API, из-за чего ответ не возвращается как json, а умирает, и блокирует запрос ajax функцией dieump.

$data = $this->Survey($request, $select_data, $custom_where);
dd($data) // -> this blocked the response
return response()->json($data);

и еще одна ошибка связана с циклом ajax, где сами данные были разбиты на страницы, где циклы не могут получить доступ к фактическим данным, поэтому я меняю jquery с этого

     data.forEach(function(item, index){ // <- cannot access the paginate data
        $("table tbody").append(
            `<tr>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.survey_nomor}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.survey_date}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.contract_id}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.contract_nama}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.class_code}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.user_name}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.route_desc}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.locatioin_komplek}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.pp_name}</td>
                <td style = "text-align: center;"><a href = "/customer-care/new-connection/survey-new-customers/print-survey-order/{${item.survey_nomor}}" class = "badge bg-primary"><i class = "bi bi-printer-fill"></i></a></td>
            </tr>`
        )
    })

хотя это

     data.data.forEach(function(item, index){ // <- adding 1 level data so it can access the paginate value
        $("table tbody").append(
            `<tr>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.survey_nomor}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.survey_date}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.contract_id}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.contract_nama}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.class_code}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.user_name}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.route_desc}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.locatioin_komplek}</td>
                <td style = "border-right: 1px solid gray; text-align: center;">${item.pp_name}</td>
                <td style = "text-align: center;"><a href = "/customer-care/new-connection/survey-new-customers/print-survey-order/{${item.survey_nomor}}" class = "badge bg-primary"><i class = "bi bi-printer-fill"></i></a></td>
            </tr>`
        )
    })

Другие вопросы по теме