Cookies Cookie未保存在OctorberCMS中
我试图通过octobercms ajax将一个项目保存到cookie中,但cookie未被保存: HTMLCookies Cookie未保存在OctorberCMS中,cookies,octobercms,Cookies,Octobercms,我试图通过octobercms ajax将一个项目保存到cookie中,但cookie未被保存: HTML 保存项目 PHP 函数onSaveItem(){ $item_id=Input::get('item_id'); Cookie::forever('saved_item',$item_id); } 因此,当我尝试在page start上检索cookie时,它返回NULL: 函数onStart(){ var_dump(Cookie::get('saved_item'); } //输出:空
保存项目
PHP
函数onSaveItem(){
$item_id=Input::get('item_id');
Cookie::forever('saved_item',$item_id);
}
因此,当我尝试在page start上检索cookie时,它返回NULL
:
函数onStart(){
var_dump(Cookie::get('saved_item');
}
//输出:空
使用cookies也花了我一段时间来理解。我希望我写的足够清楚。基本上,您不会将cookie返回到浏览器以将其添加到应用程序存储中。我创建了一个示例页面,您可以看到 第一个示例是一个常见的html表单
{{form_open({request:'onSaveItemRedirect'}}}
保存项目
{{form_close()}}
此表单将post信息发送到onSaveItemRedirect
。需要注意的关键是cookie队列。这允许服务器在标题中发送带有重定向的炊具
函数onSaveItemRedirect(){
$item_id=Input::get('item_id');
$cookie=cookie::forever($saved\u item',$item\u id);
Cookie::队列($Cookie);
返回重定向::刷新();
}
第二个示例使用AJAX API,稍微复杂一些。请注意,我使用的是partial和数据请求complete
方法。这将使用JavaScript函数更新分部代码,updateCookie()
,并完成AJAX上的新cookie
{%partial'cookie/测试“%”
{form_ajax('onSaveItemAjax',{'complete':'updateCookie()'}}}
保存项目
{{form_close()}}
脚本:
函数updateCookie(){
$.request('onUpdateCookiePartial'{
更新:{'cookie/test':'#cookiePartial'}
});
}
PHP:注意这里您应该返回一个带有cookie信息的响应。当响应返回并完成时,AJAX API向onUpdate CookiePartial()
发送一个请求。在运行事件处理程序时返回某些内容是一种很好的做法;在这种情况下,true
函数onSaveItemAjax(){
$item_id=Input::get('item_id');
$cookie=cookie::forever($saved\u item',$item\u id);
返回响应::json(['Success'])->withCookie($cookie);
}
函数onUpdateCookiePartial(){
返回true;
}
使用cookies也花了我一段时间来理解。我希望我写的足够清楚。基本上,您不会将cookie返回到浏览器以将其添加到应用程序存储中。我创建了一个示例页面,您可以看到 第一个示例是一个常见的html表单
{{form_open({request:'onSaveItemRedirect'}}}
保存项目
{{form_close()}}
此表单将post信息发送到onSaveItemRedirect
。需要注意的关键是cookie队列。这允许服务器在标题中发送带有重定向的炊具
函数onSaveItemRedirect(){
$item_id=Input::get('item_id');
$cookie=cookie::forever($saved\u item',$item\u id);
Cookie::队列($Cookie);
返回重定向::刷新();
}
第二个示例使用AJAX API,稍微复杂一些。请注意,我使用的是partial和数据请求complete
方法。这将使用JavaScript函数更新分部代码,updateCookie()
,并完成AJAX上的新cookie
{%partial'cookie/测试“%”
{form_ajax('onSaveItemAjax',{'complete':'updateCookie()'}}}
保存项目
{{form_close()}}
脚本:
函数updateCookie(){
$.request('onUpdateCookiePartial'{
更新:{'cookie/test':'#cookiePartial'}
});
}
PHP:注意这里您应该返回一个带有cookie信息的响应。当响应返回并完成时,AJAX API向onUpdate CookiePartial()
发送一个请求。在运行事件处理程序时返回某些内容是一种很好的做法;在这种情况下,true
函数onSaveItemAjax(){
$item_id=Input::get('item_id');
$cookie=cookie::forever($saved\u item',$item\u id);
返回响应::json(['Success'])->withCookie($cookie);
}
函数onUpdateCookiePartial(){
返回true;
}
您只需将其排队,并确保之后不会退出php代码,因为cookie将使用响应发送回客户端 服务器端cookie不能从客户端读取,只能从服务器端访问和读取
函数onSaveItem(){
$item_id=Input::get('item_id');
Cookie::queue(Cookie::forever('saved_item',$item_id));
返回响应::json(['success'=>true],200);
}
若您只需要这样使用的客户端cookie,那个么就不能从服务器读取它
我想这很简单,因为cookie是客户端的,所以您可以在客户端轻松地操作它
保存项目
它将存储cookie的最长时间,如永久:)
您还可以使用其他API属性,如数据请求错误
或数据请求完成(案例错误或成功)
来存储cookie
如果有任何疑问,请发表评论。您只需将其排队,并确保之后不会退出php代码,因为cookie将使用response发送回客户端 服务器端cookie不能从客户端读取,只能从服务器端访问和读取
函数onSaveItem(){
$item_id=Input::get('item_id');
Cookie::queue(Cookie::forever('saved_item',$item_id));
返回响应::json(['success'=>true],200);
}
若您只需要这样使用的客户端cookie,那个么就不能从服务器读取它
我想这很简单,因为cookie是客户端的,所以您可以在客户端轻松地操作它
保存项目
它将存储coo