Laravel 通过 ajax 请求从 blade 重定向到控制器

Laravel redirection through ajax request from blade to controller

我有一个 blade 文件,它允许用户通过向控制器发送 ajax 请求来删除某些项目。

如果控制器端的所有验证都通过并且项目已成功删除,我希望将用户重定向回刷新页面的同一页面,但是页面没有刷新并且似乎没有任何内容即将发生

Blade 文件

    $.ajax({
        type: "post",
        url: "{{env('APP_URL')}}/ticket-dashboard/updateTicket",
        dataType:'json',
        data: {"option":option, "status":status,"ticket_id":manual_ticket_id,'completed_id':'{{$user}}',"latest_ticket_log_id":latest_ticket_log_id,_token: '{{csrf_token()}}'},
        success: function (data) {
            console.log('-------');
            console.log(data);
            if(data['updated']){
                alert("The selected task was updated and page has to be refreshed before attempting to apply action to ticket again");
            }
            else {
                //Page should have reloaded on controller side
            }
        }
    })

控制器文件

if($validationPasses){
    return redirect()->route('ticket_dashboard');
}
if($validationPasses){
    return response->json(["status" => "redirect", "url" => "ticket_dashboard"]);
}

/////// javascript ////////////

$.ajax({
        type: "post",
        url: "{{env('APP_URL')}}/ticket-dashboard/updateTicket",
        dataType:'json',
        data: {"option":option, "status":status,"ticket_id":manual_ticket_id,'completed_id':'{{$user}}',"latest_ticket_log_id":latest_ticket_log_id,_token: '{{csrf_token()}}'},
        success: function (data) {
            console.log('-------');
            console.log(data);
            if(data['updated']){
                alert("The selected task was updated and page has to be refreshed before attempting to apply action to ticket again");
            }
            else {
                if(data.status === "redirect"){
                   window.location.href = data.url;
                }
            }
        }
    })

您需要 tp 响应 ajax 然后您可以重定向。