【发布时间】: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 request中window.location = "/whatever"; -
看到这个问题可能对你有帮助,stackoverflow.com/questions/199099/…
-
如果成功后需要重定向,为什么要使用 AJAX?更简单的方法是为此创建一个正常的控制器操作。
-
@Troyer,是的,它可以。但在这种情况下,我必须继续使用带有 post 方法的链接。没有get方法。解决方案是使用ajax。如果我使用表单提交,它会改变我的 css 视图
标签: ajax laravel laravel-5.3 vuejs2 laravel-blade