【问题标题】:post request using axios on Laravel 5.5在 Laravel 5.5 上使用 axios 发布请求
【发布时间】:2025-12-18 18:35:02
【问题描述】:

我正在尝试使用 axios 和最新的 Laravel 5.5 版发出一些请求 配置 X-CSRF 字段和所有 我的代码很简单:

        axios.post('/post-contact',{name:'Kamal Abounaim'})
        .then((response)=>{
            console.log(response)
        }).catch((error)=>{
            console.log(error.response.data)
        })

但我收到此错误:419(未知状态) 应该是什么问题 谢谢回复

【问题讨论】:

  • 这是在您在页面上停留一段时间后发生的,还是在页面加载后立即发生的?您的控制台中是否还有其他错误?
  • 抱歉没有说这个评论,不,如果我尝试使用 axios.get 它没有错误,但没有发布我创建一个简单的表单并尝试发布,它可以工作
  • 如果您检查浏览器中的网络选项卡,它肯定包括请求中的X-XSRFX-CSRF 标头或正文中的_token?]
  • 我检查它仍然无法正常工作
  • 选择正确答案是有礼貌的。 @KamalL'azz

标签: ajax vue.js axios laravel-5.5


【解决方案1】:

这是由于 csrf 令牌而发生的。只需在 <head> 中添加带有 csrf-token 的元标记,然后像这样将该标记添加到 axios 标头。

// in the <head>
<meta name="csrf-token" content="{{ csrf_token() }}">

<script type="text/javascript">
    // For adding the token to axios header (add this only one time).
    var token = document.head.querySelector('meta[name="csrf-token"]');
    window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;

    // send contact form data.
    axios.post('/post-contact',{name:'Kamal Abounaim'
    }).then((response)=>{
        console.log(response)
    }).catch((error)=>{
        console.log(error.response.data)
    });
</script>

【讨论】:

    【解决方案2】:

    A 419 error seems to be Authentification Timeout。您的代码对我来说看起来不错,所以似乎错误与 post-contact 端点有关?尝试使用postman.之类的工具单独测试该端点

    【讨论】:

    • 谢谢兄弟,但在以前的版本中它是好的 5.5 需要新工具或者我不明白
    • 嗯,很奇怪,不确定。希望其他人可以在这里筹码。我使用 Laravel 但尚未升级到 5.5。
    • 是的,如果你这么说,我讨厌那些情况:(
    • 只有当你忘记了 CSRF 令牌时,Laravel 才会抛出这个错误。