【问题标题】:Laravel Route suddenly redirecting to / and not reaching ControllerLaravel Route 突然重定向到/没有到达 Controller
【发布时间】:2019-06-07 21:07:44
【问题描述】:

我正在开发一个 Laravel 5.6 项目,并且必须修改从 GET 到 POST 的路由,因为我们现在正在向它提交数据。目前的路线如下所示:

Route::post('/templates/new', 'ProjectTemplateController@doCreate');

相当标准。当我尝试发布到这条路线时,它会重定向到/,并且请求永远不会到达控制器。它只是突然开始这样做。我成功地向这条路线发出了 3 个 AJAX 请求,所有这些请求都按照我的预期创建了数据。但是我从表单中删除了 AJAX 并将其转换为正常的表单 POST 请求,这就是它开始不起作用的时候。将代码恢复为 AJAX 版本也无法解决问题。

重定向发生时,日志中没有显示任何内容。我已确保所有身份验证中间件都正常运行。我对正在发生的事情完全不知所措,并且可以就我可以研究的其他内容提出一些建议。如果需要,我可以提供更多代码示例,请问。

编辑:另外,应该提到我已经尝试过缓存清除、路由清除、转储自动加载等的所有组合。这些都不起作用。

编辑 2:还值得一提的是,我们有一个 404 页面,通常不会在丢失的路线上重定向。如果我在这条路线上打错字,它会给我 404 页面。

【问题讨论】:

  • 如果将路由定义更改为Route::post('/templates/new', function() { dd(request()->all()); }),会发生什么情况。您能看到您的请求吗?
  • 我也会运行php artisan route:clear,以防你缓存你的路由。
  • 添加了我对最初问题所做的其他几个故障排除步骤。我刚才尝试了闭包路由的方法,也是重定向到/而不是转储请求
  • 我们可以看看你的web.php吗?也许另一条路线正在赶上它,但如果你在那里什么也没改变,那就很奇怪了。
  • 这个文件里面有一些特权信息我不能分享,所以我不能给你看整个文件,但是这里有所有具有相同前缀的路由:gist.github.com/Atrophius/5af87ed3fec733ff5e4677d70457e183

标签: php laravel controller routing laravel-5.6


【解决方案1】:

表单没有 CSRF 令牌。

【讨论】:

    猜你喜欢
    • 2016-08-08
    • 2017-06-26
    • 2014-06-23
    • 1970-01-01
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    相关资源
    最近更新 更多