Ошибка статуса 404 при запросе списка AJAX в Laravel - PullRequest
0 голосов
/ 26 апреля 2019

web.php

Route::group(['middleware' =>
    ['auth']], function () {

    Route::get(
        '/ajax-users/{$id}',
        'DashboardController@indexUsersAjax'
    )->name('ajax.users.index')
        ->middleware(['permission:Access Client Details Edit']);

Контроллер

/**
 * Display a listing of the resource Ajax.
 *
 * @param $id
 * @return json
 */
public function indexUsersAjax($id)
{
    $users = User::all();

    $defaultUser = Clients::find($id)
        ->default_user;

    return response()->json($users, $defaultUser);
}

AJAX

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

        $.ajax({
            url: "{{ route('ajax.users.index',[1]) }}",
            type: 'GET',
            dataType: 'json',
            success: function(result){
                console.log(result);
            },
            error: function (data) {
                console.log('Error:', data);
            }});

Результат на инструментах разработчика

GET http://localhost:8123/ajax-users/1 404 (Not Found)
Error: {readyState: 4, getResponseHeader: ƒ, getAllResponseHeaders: ƒ, setRequestHeader: ƒ, overrideMimeType: ƒ, …}

Я добавил код Laravel, над которым я работаю, не могу найти причину неправильной работы.

Ответы [ 2 ]

2 голосов
/ 26 апреля 2019

Удалите $ из $ id в определении маршрута:

Route::get(
    '/ajax-users/{id}',
    'DashboardController@indexUsersAjax'
)->name('ajax.users.index')
    ->middleware(['permission:Access Client Details Edit']);

Удалить, если файл присутствует bootstrap/cache/routes.php

Выполнить: php artisan route:list | grep /ajax-users/{id} и проверить его наличие

2 голосов
/ 26 апреля 2019

Параметры в маршрутах Laravel не включают знак доллара.

Замените '/ajax-users/{$id}' на '/ajax-users/{id}', и оно должно работать.

Кроме того, вторым параметром response()->json() является статус HTTP. Если вы хотите вернуть обе переменные, вы должны поместить их в массив, например:

return response()->json([$users, $defaultUser]);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...