我正在尝试通过执行 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/