ajax - 在 AJAX 调用 Laravel 后重定向到不同的 View

标签 ajax laravel

我正在尝试通过执行 AJAX 调用来激活我的用户。我有这个 jQuery 代码:

$(document).ready(function(){

    $(document).one('click','.continue-button',function(){

        $.ajaxSetup({

            headers: {

                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')

            }

        });

        var id = $(this).data('id');

        $.ajax({

            url: '/activate',
            type: 'POST',
            data: {id : id},
            success: function(res){

            }

        });

    });

});

它采用我的按钮的 data-id 属性,这是用户的 id 并发送 AJAX 调用。这是我的路线的样子:

Route::post('/activate','ActiveController@activate');

我的功能:

public function activate(Request $request)
    {

        $id = $request->input('id');

        User::where('id',$id)->update([

            'active' => '1'

        ]);

        return redirect('/loadDashboard');

    }

它激活用户然后重定向到“/loadDashboard”路由。这是路线的样子:

Route::group( ['middleware' => 'auth' ], function()
{

    Route::get('/loadDashboard','ActiveController@loadDashboard');  

});

最后是我的 loadDashboard 函数:

public function loadDashboard()
    {

        return view('dashboard')->with('title','Dashboard');

    }

我想在上述函数中将用户重定向到我的 dashboard View ,但它似乎将 View 返回到我的 AJAX 调用。我可以在 Inspect->Network 中看到 View 。我该如何解决这个问题?

最佳答案

代替这个

return redirect('/loadDashboard');

放这个

return response()->json(['url'=>url('/loadDashboard')]);

并在您的 ajax success 函数中放入:

 success: function(res){
   window.location=res.url;
 }

关于ajax - 在 AJAX 调用 Laravel 后重定向到不同的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232348/

相关文章:

python - Django:如何动态加载表单到当前html页面

jquery - Rails 3 AJAX 请求真实性 token 被忽略

具有一个或多个 Vue 实例的 Laravel 应用程序

linux - laravel 4 关于新安装的建议

php - 将信息添加到布局中,而无需在每个 Controller 上调用它

javascript - PhoneGap Ajax 调用

javascript - 如何从html页面中的url获取参数并将其显示在文本区域中?

javascript - 计算每个输入具有不同价格的输入值。有更短的代码吗?(仅限 javascript)

laravel - 使用 Laravel 和 VueJs 排序和过滤 ajax 数据

php - 如何从 Laravel 执行存储过程