【问题标题】:Laravel ONLY on Live Server Error MethodNotAllowedHttpExceptionLaravel 仅在实时服务器错误 MethodNotAllowedHttpException 上
【发布时间】:2020-07-22 05:49:06
【问题描述】:

尽管我没有更新任何文件,但我一夜之间就收到了这个错误。 该网站已经正常运行了 3 周,但我突然 尝试通过 POST 方法提交任何内容时出现此错误。 我正在托管两个基于 laravel 的网站,并且它们都在发生。 任何想法都会非常感激。提前致谢

【问题讨论】:

  • 确保服务器上没有重定向,例如 HTTP -> HTTPS。
  • 您之前是否实施过任何更改?也许您可以检查是否有缓存处于活动状态,因此您的路线文件中的路线不是实际使用的路线。试试php artisan route:clear。还要检查是否在预期的路由之前定义了另一个路由,该路由具有另一种方法但 URI 的结构相同。
  • 谢谢@Danaq,我有一段时间没有更新任何东西了。我真的不知道如何在实时服务器上运行命令,我应该通过 gitbash 或类似的东西连接吗?
  • 谢谢@aynber,你知道在我的 cpanel 哪里可以找到它吗?
  • 没有 cPanel 的线索。我在 .htaccess 文件中看到过类似的重定向。您可以通过查看浏览器开发者工具的“网络”标签来验证发生了什么

标签: php laravel laravel-5 server routing


【解决方案1】:

我不知道是否可以使用它,最简单的解决方案是通过 SSH 连接到您的实时服务器。如果您无法通过 SSH 访问您的服务器,您可能使用 FTP 来发布您的项目。虽然这可以工作(即部署在 Windows 机器上),但它也会导致棘手的问题。

我最近在一台 Windows 机器上遇到了类似的问题,不能简单地在 shell 上执行 artisan 命令。

我的解决方案是设置路由并在控制器方法中添加此代码

$output = new BufferedOutput;

Artisan::call('route:list', [], $output); // use route:clear instead

return dd($output->fetch());

您可以尝试将'route:list' 替换为'route:clear'
也可以尝试在您的路线文件中评论所有其他路线,然后再次尝试目前不工作的路线。
如果仍然失败,则问题来自您的服务器设置。
如果这行得通,它更可能与您的路线安排有关。

【讨论】:

  • 感谢您的帮助 Danaq。我只是运行“php artisan route:clear”命令,但它没有解决问题。当我运行“php artisan route:list”时,它会正确识别我的 POST 路由,所以我不知道发生了什么
  • 您可以尝试评论所有路线,但不工作并尝试再次发送您的请求的路线除外?
  • 刚刚尝试过,得到了同样的错误。我会看看 htaccess 文件.. 我不知道这是怎么回事这太奇怪了
  • 您也可以尝试在不使用邮递员表单的情况下测试请求。
  • 好的,只是为了检查一切:你检查过 from 是否真的说 method="POST"
【解决方案2】:

这都是由我尝试上传的 PDF 文件中的单引号字符 (') 引起的。 插入手掌 gif

【讨论】:

    猜你喜欢
    • 2019-07-13
    • 2019-03-19
    • 1970-01-01
    • 2015-11-07
    • 2017-09-21
    • 2018-08-07
    • 2020-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多