我想用httpOnly = false
创建一个cookie,这就是我现在正在做的事情
Cookie::queue("key", "val", 30, null, null, false, false);
但我无法在javascript
中访问该Cookie,我也注意到{cookie}的开发者工具中设置了http flag
。
我错过了什么吗?
答案 0 :(得分:0)
假设Laravel版本标志是正确的,那么在控制器方法上使用依赖注入是更好的做法:
public function controllerAction(\Illuminate\Cookie\CookieJar $cookieJar)
{
$cookieJar->queue(cookie("key", "val", 30, null, null, false, false));
return response()->view('Somedir.viewname');
// Or any other type of response you'd want to return
}
更多信息:https://laracasts.com/discuss/channels/general-discussion/how-to-set-a-cookie-with-laravel-5
通常,Laravel HTTPKernel Cookie是加密的,只能由您的应用程序解密。
如果要使用Javascript访问cookie的值,请在视图中使用可以访问cookie的解密值的条件语句:
// someview.blade.php
@if ( request()->cookie('nameOfCookie') )
<script>
var cookieValue = '{!! request()->cookie('nameOfCookie') !!}';
</script>
@endif
这样,只有在请求中设置了值时才会看到该值。您可以非常简单地测试在上面的代码之外设置的cookie值:
<script>
if (cookieValue)
{
// Do something!
}
<script>
如果您没有存储字符串,请记住更改输出类型。使用implode(string $glue, array $array)
http://php.net/manual/en/function.implode.php