没有CSRF的MethodNotAllowedHttpException路径

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了没有CSRF的MethodNotAllowedHttpException路径相关的知识,希望对你有一定的参考价值。

我在laravel中传递了一个由JS中的函数调用的路径,我无法控制它,因为它是外部的,这条路径是一个post方法,因为我需要它就是这样,但它生成了一个MethodNotAllowedHttpException,就像我做的那样排除此验证的某些路线。

注意:我已经尝试在VerifyCsrfToken的异常向量中添加它,修改该类文件VerifyCsrfToken将中间件扩展到一个名为class VerifyCsrfToken extends BaseVerifier的新文件及其所有依赖项,我也禁用了中间件中的验证,但它们都不适用于我

答案

来自the docs

您应该将这些类型的路由放在web适用于RouteServiceProvider文件中所有路由的routes/web.php中间件组之外。但是,您也可以通过将其URI添加到$except中间件的VerifyCsrfToken属性来排除路由:

protected $except = [
    'your/route/*',
];
另一答案

为此,您必须在protected $ except中添加路由的URI。例如,如果您的网址是www.example.com/full/route/,则必须添加

protected $except = [
    '/full/route/*',
];

好像你要添加路由名称而不是URI。

以上是关于没有CSRF的MethodNotAllowedHttpException路径的主要内容,如果未能解决你的问题,请参考以下文章

在没有表格的情况下获取 Codeigniter CSRF 令牌?

Django:POST 表单需要 CSRF? GET 没有?

没有 CSRF 代币的表格:有啥风险

Laravel 5:没有 CSRF 检查的 POST

没有表单的 Django CSRF 令牌

有没有理由为啥 Web 开发人员不使用 CSRF 作为登录页面