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 然后您可以重定向。
我有一个 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 然后您可以重定向。