php 当被 AJAX 调用时,Laravel重定向到从控制器路由

i7uq4tfw  于 2023-04-10  发布在  PHP
关注(0)|答案(5)|浏览(178)

给定调用FriendsController@destroyajax

$.ajax({
    url:     '/dashboard/friends/' + id,
    type:    'DELETE',
    data:    { src: 'show' },
    success: function(response) {
    }
});

我怎么能return Redirect::route('dashboard.friends.index')内部FriendsController删除过程完成后?我猜这是试图返回响应回 AJAX 不知道如何React.
我可以只window.location.href = '/dashboard/friends',但我想闪光的成功消息的看法,我不能用 AJAX 。

dxxyhpgq

dxxyhpgq1#

我发现了最简单的方法。只要在你 AJAX 成功中再次使用相同的url。假设friends是你的路由名

$.ajax({
    url:     '/dashboard/friends/' + id,
    type:    'DELETE',
    data:    { src: 'show' },
    success: function(response) {
       window.location.href = "friends";
    }
});

这样你就可以把重定向或闪存会话消息,如果你想。

bq8i3lrv

bq8i3lrv2#

我知道这可能是个老问题,但如果你想返回一个动态路由
return route('post.view', ['id' => $result]);
在你的前端

success: function(response){
          window.location.replace(response);
          }
tvz2xvvm

tvz2xvvm3#

Here is how I solved this issue我自己的。对于诸如执行 AJAX 删除模型的功能,它将提示确认模式,执行删除, Flink 消息并重定向到提供的路由。
设置完成后,可以通过将适当的data属性传递给原始删除按钮或链接来动态完成。

iqih9akk

iqih9akk4#

我遇到了同样的问题,这里是什么为我做的技巧。
在控制器中,您可以使用以下命令 Flink 消息:
\Session::flash('success', __('locale.message'));
然后在 AJAX 响应处理程序中,您可以重定向到任何您想要的位置
location.replace('/home');
不要忘记在视图中添加登录名以显示消息,即:

@if (session('success'))
    <div class="alert alert-success alert-dismissible fade show" role="alert">
        {{ session('success') }}
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">&times;</span>
        </button>
    </div>
 @endif
jtjikinw

jtjikinw5#

if(data.success){

    var loc = window.location;
    window.location = loc.protocol+"//"+loc.hostname+"/admin/dashboard";
}

相关问题