Quiero alternar la publicación de estadísticas de mis exámenes en laravel, creé una ruta para alternar y funcionó, pero no quiero actualizar la página cada vez que envío una solicitud POST, así que creé esta función para enviar,
function togglePublish(id){ let token = '@csrf'; token = token.substr(42, 40); $.ajax({ type: "post", url: `{{ route('togglePublish','${id}') }}`, data: `_token=${token}` }); } Quise decir esto después de que laravel compile la página, la URL será https://localhost/toggle/${id} y luego javascript cambiará la variable id a 1 , por ejemplo, para que el enlace sea https://localhost/toggle/1 y eso funcionará, pero laravel regresó
Falta el parámetro obligatorio para [Ruta: togglePublish] [URI: a/togglePublish/{exam}] [Falta el parámetro: id].
Creo que tengo que agregar @csrf
la ruta
Route::post('/a/togglePublish/{exam:id}', [AdminExamController::class, 'togglePublish'])->name('togglePublish'); la función togglePublish en el controlador AdminExamController
public function togglePublish(Exam $exam) { dd($exam); }además de lo que dijo @vivekVaghela, cambié mi ajax a
function togglePublish(id){ let token = '@csrf'; token = token.substr(42, 40); $.ajax({ type: "post", url: `{{ url('/a/togglePublish/'.'${id}') }}`, data: `_token=${token}`, error: function(err) { console.log( $($(err.responseText)[1]).text() ) debugger; } }); } EDITAR : para usar ajax, debe usar la etiqueta de secuencia de comandos uncompressed , como se muestra a continuación
Sitio web oficial de JQuery: Haz clic en mí
Seleccione la versión que necesita (se recomienda la última versión estable) y haga clic en el botón sin comprimir ingrese la descripción de la imagen aquí
Copie el script en el cuadro de diálogo y péguelo en su código: ingrese la descripción de la imagen aquí 
resolución
TypeError: $.ajax(...) no es una función?