php – Laravel包会话变量没有用ajax调用保存
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Laravel包会话变量没有用ajax调用保存,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1909字,纯文字阅读大概需要3分钟。
内容图文
![php – Laravel包会话变量没有用ajax调用保存](/upload/InfoBanner/zyjiaocheng/782/aa23988a8e994d679e475eab3543d51c.jpg)
我正在构建一个名为under-construction的包.在配置中激活此程序包时
文件网站将是underconstruction只有具有正确代码的人才能访问
应用.
https://github.com/larsjanssen6/underconstruction
我现在遇到的问题:
当输入代码时,我做了一个ajax调用,命中了这个控制器方法(称为check):
https://github.com/larsjanssen6/underconstruction/blob/master/src/Controllers/CodeController.php
如果代码正确,则设置会话变量:
session(['can_visit' => true]);
然后在我的vue.js代码中,我重定向到/.它会再次击中我的中间件.在这里,我检查是否存在名为can_visit的会话.
return session()->has('can_visit');
https://github.com/larsjanssen6/underconstruction/blob/master/src/UnderConstruction.php
但会话变量can_visit总是不见了!怎么可能?
谢谢你的时间.
解决方法:
您没有加载会话中间件,因此会话未启动且没有值持久存在.
正如评论中提到的,即使您的受保护路由(/)位于Web中间件(读取会话)中,您的服务提供商的路由(/ under / construction,/ under / check)也不是(没有写入会话).
简单的解决方法是添加会话,甚至更好的整个Web中间件.
$routeConfig = [
'namespace' => 'LarsJanssen\UnderConstruction\Controllers',
'prefix' => 'under',
'middleware' => [
'web', // add this
// DebugbarEnabled::class, // leaving this dead code behind despite vcs
],
];
但是,如果用户将中间件添加到其Web中间件组,您可能会很快遇到无限重定向循环的问题.所以我会添加一些检查,以确保你没有在现有的一个建设路线上.
public function handle($request, Closure $next)
{
// check this isn't one of our routes
// too bad router hasn't loaded named routes at this stage in pipeline yet :(
// let's hope it doesn't conflict with user's routes
if ($request->is('under/*')) {
return $next($request);
}
if (! $this->config['enabled']) {
return $next($request);
}
if (!$this->hasAccess($request)) {
return new RedirectResponse('/under/construction');
}
return $next($request);
}
最后从这个项目的背景中猜测,我希望大多数人都想在全球中间件中坚持这一点.但是,您将遇到相同的会话 – 尚未启动的问题,因为它不会在全局中间件中运行.所以还有更多可以咀嚼的东西.快乐的编码!
内容总结
以上是互联网集市为您收集整理的php – Laravel包会话变量没有用ajax调用保存全部内容,希望文章能够帮你解决php – Laravel包会话变量没有用ajax调用保存所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。