为什么 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)
})
这在本地完美运行,但在服务器上它不工作,不仅 delete
还 patch
而 post
在本地和服务器上运行良好,
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 令牌。在生产环境中,事情变得比本地环境更严格。
我发现服务器不接受 patch
和 delete
http 请求,所以我更改了 apache 设置,现在它工作正常,另一种选择是您在数据和用户 axios.post
axios.post(url, {
data: this.data,
__method: 'delete'
})
这个也行
尝试将 _method: patch
添加到您的请求中。
如 Laravel 路由文档中所建议,在 Form Method Spoofing
部分
我得到了这个代码
axios.delete('/replies/' + this.reply.id)
.then((response) => {
flash('Successfully Deleted!', 'success');
}).catch((err) => {
console.log(err)
})
这在本地完美运行,但在服务器上它不工作,不仅 delete
还 patch
而 post
在本地和服务器上运行良好,
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 令牌。在生产环境中,事情变得比本地环境更严格。
我发现服务器不接受 patch
和 delete
http 请求,所以我更改了 apache 设置,现在它工作正常,另一种选择是您在数据和用户 axios.post
axios.post(url, {
data: this.data,
__method: 'delete'
})
这个也行
尝试将 _method: patch
添加到您的请求中。
如 Laravel 路由文档中所建议,在 Form Method Spoofing
部分