laravel 5.7访问不了路由

2023年 8月 7日 34.5k 0

随着 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 令牌:

{{ csrf_field() }}

登录后复制

这个方法可以确保你的 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访问不了路由的详细内容,更多请关注每日运维网(www.mryunwei.com)其它相关文章!

相关文章

JavaScript2024新功能:Object.groupBy、正则表达式v标志
PHP trim 函数对多字节字符的使用和限制
新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
为React 19做准备:WordPress 6.6用户指南
如何删除WordPress中的所有评论

发布评论