如何将 ajax 中的 post 请求发送到 laravel 路由参数

how can I send post request in ajax to laravel route parameters

我想在 laravel 中切换我的考试发布统计信息,我创建了一个切换路线并且它有效,但我不想每次发送 [=40= 时都刷新页面] 请求所以我创建了这个函数来发送,

function togglePublish(id){
    let token = '@csrf';
    token = token.substr(42, 40);
    $.ajax({
        type: "post",
        url: `{{ route('togglePublish','${id}') }}`,
        data: `_token=${token}`
    });
}

我的意思是在 laravel 编译页面后,URL 将是 https://localhost/toggle/${id} 然后 javascript 将 id 变量更改为 1例如,所以 link 是 https://localhost/toggle/1 这样就可以了,但是 laravel 返回了

Missing required parameter for [Route: togglePublish] [URI: a/togglePublish/{exam}] [Missing parameter: id].

我想我必须加上@csrf

路线

Route::post('/a/togglePublish/{exam:id}', [AdminExamController::class, 'togglePublish'])->name('togglePublish');

AdminExamController控制器中的togglePublish函数

public function togglePublish(Exam $exam)
{
    dd($exam);
}

加上@vivekVaghela 所说的内容,我已将 ajax 更改为

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;
            }
        });
    }

编辑:要使用ajax你必须使用uncompressed脚本标签,如下

  1. JQuery官网:Click me

  2. Select你需要的版本(推荐最新的稳定版)点击解压按钮在此处输入图片描述 复制对话框中的脚本并将其粘贴到您的代码中:在此处输入图像描述


资源
TypeError: $.ajax(...) is not a function?