Laravel路由方法DELETE不起作用



在我的routes.php中,当我有:

    Route::delete('page/{id}', function ($id)
    {
        return "deleting $id";
    });

我使用Postman发送一个deleteget请求,这会抛出一个MethodNotAllowedHttpException

当我更改routes.php:时

    Route::get('page/{id}', function ($id)
    {
        return "deleting $id";
    });

它响应字符串deleting...以响应GETDELETEPUT!但是HTTP代码是403。

它只是对POST请求抛出一个MethodNotAllowedHttpException

这个问题似乎只发生在远程服务器上,并且在本地主机上正常工作。

Laravel中是否有任何内容可能会将方法重定向或更改为GET

这是因为Apache不允许DELETE请求,这就是为什么响应代码是"403禁止"的原因。

将其添加到Laravel默认代码后的.htaccess中:

<Limit DELETE>
  Order deny,allow
  Allow from all
</Limit>

请参阅以下答案:https://stackoverflow.com/a/1402480/2543240

尝试将其添加到您的表单中,在删除按钮上方:

{!! method_field('DELETE') !!}
<input type="hidden" name="_method" value="DELETE">

最新更新