为什么 axios delete/patch 不能在服务器上工作,但可以在本地使用 laravel

Why axios delete/patch not working on server but works locally with laravel

我得到了这个代码

axios.delete('/replies/' + this.reply.id)
    .then((response) => {
        flash('Successfully Deleted!', 'success');
    }).catch((err) => {
        console.log(err)
    })

这在本地完美运行,但在服务器上它不工作,不仅 deletepatchpost 在本地和服务器上运行良好,

axios.patch('/replies/' + this.reply.id, {
    body : this.body
}).then((response) => {
    flash('Successfully Updated!', 'success');
}).catch((err) => {
    console.log(err)
})

我在同一主机上的三个不同网站上发生这种情况,如果 delete/patch 请求来自正常 blade 它甚至在服务器上也能正常工作,但是当我使用 axios 时它只工作本地不在服务器上

注意:我在三个项目中只有一个添加了 axios 代码,其他项目来自开源项目,除了我没有人遇到这个问题,所以我不得不假设这不是代码,而是托管本身,我还缺少什么?

如果您收到 403,那么您可能在请求中没有 Laravel 用来验证请求是否来自您的应用程序的 CSRF 令牌。在生产环境中,事情变得比本地环境更严格。

看看:https://laravel.com/docs/7.x/csrf

我发现服务器不接受 patchdelete http 请求,所以我更改了 apache 设置,现在它工作正常,另一种选择是您在数据和用户 axios.post

axios.post(url, {
 data: this.data,
 __method: 'delete'
})

这个也行

尝试将 _method: patch 添加到您的请求中。

如 Laravel 路由文档中所建议,在 Form Method Spoofing

部分