You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中Blade发送AJAX请求到控制器后重定向无效应如何处理

你当前的实现不生效的核心原因是:AJAX是异步请求,服务端返回的302重定向指令只会被AJAX引擎处理,不会触发浏览器整页跳转或刷新。你需要调整前后端逻辑,由前端接收操作成功信号后主动触发页面刷新,具体修改方案如下:


1. 修改控制器返回逻辑

不要返回重定向响应,改为返回JSON格式的操作状态标识:

if($validationPasses){
    return response()->json([
        'updated' => true,
        // 可选:返回需要跳转的路由地址,灵活性更高
        'redirect_url' => route('ticket_dashboard')
    ]);
}

2. 修改Blade模板中的AJAX回调

在请求成功的回调中判断操作状态,主动触发页面刷新/跳转:

$.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("所选任务已更新,对工单执行新操作前需刷新页面");
            // 二选一即可:
            // 方案1:直接刷新当前页面
            location.reload();
            // 方案2:跳转到控制器指定的路由地址
            // location.href = data.redirect_url;
        }
        else {
            // 处理更新失败的逻辑
        }
    }
})

补充:如果不需要用户感知弹窗提示,可直接删除alert代码行,页面会静默刷新。

内容的提问来源于stack exchange,提问作者Yeo Bryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 15:27:02