【问题标题】:How can I make it return to view blade laravel after ajax process?ajax 处理后如何让它返回查看刀片 laravel?
【发布时间】:2018-02-13 14:03:33
【问题描述】:

我的 ajax(在 vue 组件中)是这样的:

<template>
    ...
    <a class="text-right" @click="detail">
        Detail
    </a>
    ...
</template>
<script>
    export default{
        ...
        methods:{
            ...
            detail() {
                this.$http.post(window.BaseUrl + '/shop/',{data: JSON.stringify(this.data)}).then(function (response) {
                    ...
                }).catch(function(error){
                    ...
                });
            }
        }
    }
</script>

如果用户点击一个链接,它将调用详细方法

通过ajax发送数据的详细方法

它将在 laravel 中路由

这样的路线:

Route::group(['prefix' => 'shop','as'=>'shop.'], function () {
    Route::post('/', 'ShopController@index');
    ...
});

然后路由会调用shop controller

这样的控制器:

public function index(Request $request)
{
    $param = $request->only('data');
    $list = $this->shop_service->getList($param['cart_cache']);
    return view('shop.index',compact('list'));
}

如果代码执行,我希望它会重定向到查看刀片 laravel (return view('shop.index',compact('list'));)

我该怎么做?

【问题讨论】:

  • 如果请求成功,则在您的ajax requestwindow.location = "/whatever";
  • 看到这个问题可能对你有帮助,stackoverflow.com/questions/199099/…
  • 如果成功后需要重定向,为什么要使用 AJAX?更简单的方法是为此创建一个正常的控制器操作。
  • @Troyer,是的,它可以。但在这种情况下,我必须继续使用带有 post 方法的链接。没有get方法。解决方案是使用ajax。如果我使用表单提交,它会改变我的 css 视图

标签: ajax laravel laravel-5.3 vuejs2 laravel-blade


【解决方案1】:

您可以在 Ajax 成功中重定向到路由,这将在控制器中调用您想要的函数,如下所示:

Ajax

success:function(){
    window.location.href(base_url+"/get/data");
});

为此,您应该具有以下路由和控制器功能

路线

Route::get('/get/data','YourController@getData');

控制器

public function getData(){      

    $list = // here write code to get desired data.

    return view('shop.index',compact('list'));
}

希望你能理解。

【讨论】:

    猜你喜欢
    • 2021-10-09
    • 2015-05-06
    • 1970-01-01
    • 1970-01-01
    • 2020-06-25
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多