Javascript 使用Axios Post时未找到购物车会话
我正在尝试实现购物车功能,使用户可以增加/减少购物车中的物品数量。按“+”或“-”将触发名为updateCart()的onclick javascript函数 updateCart()用于将post请求发送到我的CartController@updateCart()其中我运行逻辑来更新购物车数量 问题:提交post请求后,我无法访问全局购物车会话。 一旦进入CartController中的updateCart(),我就可以访问该请求 成功地从axios获取变量。但是,我无法访问我的 购物车会话。我无法找到购物车项目,即使我有 正确的rowId 我的购物车中有项目,但键入cart::content()或cart::get()返回错误500,因为它认为我的购物车是空的 一旦我可以检索我的购物车,我就可以使用cart::update()等实现更新数量的逻辑。请帮助Javascript 使用Axios Post时未找到购物车会话,javascript,php,laravel,post,axios,Javascript,Php,Laravel,Post,Axios,我正在尝试实现购物车功能,使用户可以增加/减少购物车中的物品数量。按“+”或“-”将触发名为updateCart()的onclick javascript函数 updateCart()用于将post请求发送到我的CartController@updateCart()其中我运行逻辑来更新购物车数量 问题:提交post请求后,我无法访问全局购物车会话。 一旦进入CartController中的updateCart(),我就可以访问该请求 成功地从axios获取变量。但是,我无法访问我的 购物车会话。
点击+或-触发updateCart(动作,rowId) CartController.php
Route::post('update-cart', 'CartController@updateCart')->name('update-cart');
public function updateCart(Request $request) {
//works, returns '620d670d95f0419e35f9182695918c68'
return $request->get('rowId');
//works, returns 'add' or 'subtract'
return $request->get('action');
//fails, returns empty array
return Cart::content();
//fails, error 500 because cannot find cart instance
return Cart::get('620d670d95f0419e35f9182695918c68');
return 200;
}
运行时,我将无法访问Cart::content()和相关的Cart函数。它试图返回Cart::content(),它将显示我的整个购物车。
这是我在任何其他页面上返回购物车::内容()的时候
您无法访问API路由中的会话 API基于令牌,而不是会话。阅读“JWT”(JSON Web令牌)或“OAuth”或“Laravel Passport” 如果确实需要,您仍然可以强制执行会话: 打开
app/Http/Kernel.php
查找受保护的$middlewareGroups=
您应该在此处看到'api'=>[
只需添加以下内容:
\App\Http\Middleware\EncryptCookies::class,
我建议您在数据库中使用购物车
假设有人在web上使用您的api,然后他被添加到购物车。第二天他回到您的商店,但使用移动应用程序。因此,如果我们使用session,我认为它不能与api一起使用。但是如果使用database,您可以根据用户ID正确存储购物车数据。我将对此进行研究,感谢您的深入了解。您认为我使用的购物车软件包正在实现session吗“是吗?”ryank是的。
public function updateCart(Request $request) {
//works, returns '620d670d95f0419e35f9182695918c68'
return $request->get('rowId');
//works, returns 'add' or 'subtract'
return $request->get('action');
//fails, returns empty array
return Cart::content();
//fails, error 500 because cannot find cart instance
return Cart::get('620d670d95f0419e35f9182695918c68');
return 200;
}