laravel 5.7访问不了路由

随着 Laravel 5.7 的推出,有很多用户反映访问路由出现了问题。这个问题的出现可能会让你在开发过程中浪费大量的时间来处理。为了帮助大家解决这个问题,本文将详细介绍 Laravel 5.7 访问不了路由的解决方案。

首先我们需要了解 Laravel 5.7 的一些新变化,这些变化可能会导致之前的代码无法正常运行。其中最重要的一个变化是默认添加了 CSRF 保护中间件。这个中间件可以确保用户提交的表单数据是否来自于你的应用程序,防止应用程序遭受 CSRF 攻击。

CSRF 保护中间件在 Laravel 5.6 中已经存在,但默认并没有启用。但在 Laravel 5.7 中,Laravel 团队默认启用了这个中间件。因此,在 Laravel 5.7 中,使用表单提交数据时需要添加 CSRF 令牌。

解决方法:

有两种方法可以解决 Laravel 5.7 访问不了路由的问题。第一种方法是在 web.php 文件中添加 CSRF 令牌。第二种方法是禁用 CSRF 保护中间件。

方法一:在 web.php 文件中添加 CSRF 令牌

Laravel 5.7 代码的 RouteServiceProvider.php 中默认使用了 web 中间件组,因此,在 web.php 文件中添加 CSRF 令牌最简单的方法就是使用 {{ csrf_field() }} 方法。

例如,如果你有一个处理 POST 请求的路由:

Route::post('/foo', function () {

return 'Hello World';

});

你需要在表单中添加 {{ csrf_field() }} 方法来生成 CSRF 令牌:

<form method="POST" action="/foo">

{{ csrf_field() }}
<!-- ... -->

</form>

这个方法可以确保你的 Laravel 5.7 应用程序可以正常处理 POST 请求。

方法二:禁用 CSRF 保护中间件

禁用 CSRF 保护中间件是另一个解决 Laravel 5.7 访问不了路由的方法。虽然这种方法可能会稍微降低你的 Laravel 应用程序的安全性,但如果你的应用程序不会受到 CSRF 攻击的威胁,那么这种方法是可行的。

要禁用 CSRF 保护中间件,你需要在 VerifyCsrfToken 类的 $except 属性中添加要忽略的 URI。

打开 app/Http/Middleware/VerifyCsrfToken.php 文件,然后在 $except 属性中添加要忽略的路由:

protected $except = [

'your-route-to-ignore'

];

例如,假设你想忽略“register”路由:

protected $except = [

'register'

];

这个方法可以确保你的 Laravel 5.7 应用程序可以正常处理所有请求。

结论:

总的来说,在 Laravel 5.7 中访问不了路由的问题主要是由于默认启用了 CSRF 保护中间件所导致的。因此,如果你在开发的过程中遇到了这个问题,可以尝试使用这两种方法来解决。如果你要禁用 CSRF 保护中间件,应该仅对那些不涉及敏感或重要数据的路由使用。这个方法可能会略微降低你的 Laravel 应用程序的安全性,因此建议使用方法一来确保你的应用程序的安全性。

以上就是laravel 5.7访问不了路由的详细内容,更多请关注编程之家其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


laravel的dd函数不生效怎么办
看不懂laravel文档咋办
安装laravel框架出现command怎么办
Laravel开发API怎么使用事务
laravel怎么构建复杂查询条件
laravel如何实现防止被下载
为什么laravel比yii火
一些常见的Laravel定时任务不运行的问题
laravel用路由有什么好处
composer无法安装laravel怎么办
laravel现在还用吗
laravel怎么替换主键id
laravel的appurl有什么用
如何修改Laravel的报错输出形式
laravel怎么避免foreach查表
laravel怎样操作数据库
laravel怎么截取字符串
laravel 是国内的吗
laravel怎么设置请求头
浅析Laravel社区Redis组件报错的问题和解决方法