Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Axios Post时未找到购物车会话_Javascript_Php_Laravel_Post_Axios - Fatal编程技术网

Javascript 使用Axios Post时未找到购物车会话

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()的onclick javascript函数

updateCart()用于将post请求发送到我的CartController@updateCart()其中我运行逻辑来更新购物车数量

问题:提交post请求后,我无法访问全局购物车会话。

一旦进入CartController中的updateCart(),我就可以访问该请求 成功地从axios获取变量。但是,我无法访问我的 购物车会话。我无法找到购物车项目,即使我有 正确的rowId

我的购物车中有项目,但键入cart::content()或cart::get()返回错误500,因为它认为我的购物车是空的

一旦我可以检索我的购物车,我就可以使用cart::update()等实现更新数量的逻辑。请帮助


点击+或-触发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;
}