ARTICLE AD BOX
I'm using Laravel + PHP + DataTables. I have a page with DataTables, and when I select one or more checkboxes, I use a form to send it to another page.
However, after sending, the page displayed continues to be the DataTables page. In debug mode, the data and the page to be redirected appear, but error 405 seems to occur.
configuration of my routes
Route::get('/distribuicao/multidistribuicao', [DistribuicaoController::class, 'multidistribuicao'])->name('distribuicao.multidistribuicao')->middleware(['auth','BloqueioHorario']); Route::post('/distribuicao/distribuirmulticheck', [DistribuicaoController::class, 'distribuirmulticheck'])->name('distribuicao.distribuirmulticheck')->middleware(['auth','BloqueioHorario']); Route::post('/distribuicao/distribuidomulticheck', [DistribuicaoController::class, 'distribuidomulticheck'])->name('distribuicao.distribuidomulticheck')->middleware(['auth','BloqueioHorario']); <script> // $(document).ready(function() { var urlRota = '{{ route("distribuicao.multidistribuicao") }}'; var table = $('.data-table').DataTable({ processing: true, responsive: true, ajax: urlRota, columnDefs: [{ orderable: false, // className: 'select-checkbox', render: DataTable.render.select(), targets: 0 // The first column will hold the checkbox }], select: { style: 'multi', // Allows multiple selection selector: 'td:first-child', // Click checkbox to select className: 'chk', }, lengthMenu: [{ label: 'TODOS', value: -1 }], dom: ('<"row"<"col-sm-2"f><"col-sm-8 pb-3 text-center"<"clear">><"col-sm-2"l>>><"row"<"col-sm-4"<"clear">><"col-sm-4 text-center"p><"col-sm-4"<"clear">>'), language: { lengthMenu: ('Mostrar _MENU_ registros'), search: ('Pesquisar'), processing: ('Carregando...'), zeroRecords: ('Nenhum registro encontrado'), paginatePrevious: ('Anterior'), paginateNext: ('Próximo'), paginateFirst: ('Primeiro'), paginateLast: ('Último'), info: ('Mostrando de _START_ até _END_ de _TOTAL_ registros'), paginate: { next: "Próximo", previous: "Anterior", first: "Primeiro", last: "Último" } }, columns: [{ data: 'idMaterial', name: 'idMaterial', }, { data: 'nomeUnidade', name: 'nomeUnidade', }, { data: 'nomeMaterial', name: 'nomeMaterial', }, { data: 'qtdAtual', name: 'qtdAtual', class: "text-center", width: '15%', }, ] }); $('#meuForm').on('submit', function(e) { e.preventDefault(); let selecionados = []; $('#DataTables_Table_0 tbody tr').each(function() { let checkbox = $(this).find('.dt-select-checkbox'); if (checkbox.is(':checked')) { let dados = table.row(this).data(); selecionados.push({ idMaterial: dados['idMaterial'], nomeUnidade: dados['nomeUnidade'], nomeMaterial: dados['nomeMaterial'], qtdAtual: dados['qtdAtual'] }); } }); $.ajax({ headers: { 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') }, url: '{{ route("distribuicao.distribuirmulticheck") }}', type: 'POST', contentType: 'application/json', dataType: 'JSON', data: JSON.stringify(selecionados), success: function(response) { // debugger; console.log('aquiiiiiiiiiiiiiiiii'); var urlquevai = "{{ route('distribuicao.distribuirmulticheck') }}"; $(location).attr('href', urlquevai); }, fail: function(xhr, status, error) { // Acessa o objeto JSON retornado pelo servidor em caso de erro (ex: status 400 ou 500) console.log('errooooooooooooooo'); var errorData = xhr.responseJSON; console.log("Erro: " + errorData + "Erro desconhecido"); } }); }); // }); </script>

