Проблемы вызова Ajax - PullRequest
0 голосов
/ 12 июня 2019

У меня есть некоторые проблемы с моим вызовом ajax, у меня есть группа коллекций, и когда я нажимаю на ссылку показать, она должна показывать мне задачи коллекции. Проблема в том, когда я пытаюсь создать новые задачи для текущей коллекции. Я сделал 50% проблемы, потому что она создает записи в базе данных, но происходит нечто странное.

Форма уже отправлена, даже если я не нажму кнопку создания

Послевызов ajax, он создает записи в базе данных, но не добавляет вновь созданный элемент, он показывает мне это:

Ответ на вызов Ajax

Вот мой ajaxскрипт:

$(document).ready(function() {

        // store task
        $('#create-task').click(function (event) {
            event.preventDefault();

            $.ajax({

                type: 'post',
                dataType: 'json',
                data: $('#create-task-form').serialize(),

                success: function (data) {
                    $('#create-task-form').trigger('reset');
                    $('#createTaskModal').modal('hide');

                    $('.collections').append('<li>' +  data.name + '</li>');
                }

            });

        });
    });

Я не установил URL, потому что когда я делаю это, он показывает мне что-то вроде этого, и я не знаю почему.

Дублирующая коллекция / коллекция/ id

Установить URL

Маршруты:

// Collection routes
Route::prefix('collections')->middleware('auth')->group(function() {

    Route::get('/', 'CollectionController@index')->name('collections.index');

    Route::post('/', 'CollectionController@store')->name('collections.store');

    Route::get('/{collection}', 'CollectionController@show')->name('collections.show');

    Route::get('/{collection?}/edit', 'CollectionController@edit')->name('collections.edit');

    Route::patch('/{collection?}', 'CollectionController@update')->name('collections.update');

    Route::delete('/{collection?}', 'CollectionController@destroy')->name('collections.destroy');

    Route::post('/{collection?}', 'CollectionController@storeTask')->name('tasks.store');

});

Контроллер

 public function storeTask(Request $request)
    {
        $attributes = $request->validate([
            'name' => 'required|min:3',
            'description' => 'nullable|min:3',
            'status' => 'required',
            'due' => 'nullable|date'
        ]);

        $attributes['collection_id'] = $request->collection;

        $task = Task::create($attributes);

        return Response::json($task);
    }

PS: Iможет по-прежнему создавать записи, даже если проверка с серверной части не удалась!

1 Ответ

0 голосов
/ 12 июня 2019

На основании вашего изображения ваша маршрутизация неверна.

Вы получаете 404 за попытку дважды получить доступ к коллекциям / коллекциям, что приводит к несуществующему URL-адресу.

Решение этой проблемы будет:

 url: {{ url('/collections/25') }},
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...