在我的routes.php
中,当我有:
Route::delete('page/{id}', function ($id)
{
return "deleting $id";
});
我使用Postman发送一个delete
或get
请求,这会抛出一个MethodNotAllowedHttpException
。
当我更改routes.php
:时
Route::get('page/{id}', function ($id)
{
return "deleting $id";
});
它响应字符串deleting...
以响应GET
、DELETE
和PUT
!但是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">