我正在尝试制作laravel api,获取请求一切正常,但是当我使用delete请求时,它显示了此信息
请帮助,我该怎么办。
这是在我的web.php中,
Route::delete('article/{id}','ArticleController@destroy');
在ArticleController中
public function destroy($id)
{
$article=Article::FindOrFail($id);
if($article->delete()){
return new ArticleResources($article);
}
}
答案 0 :(得分:2)
API路由应放置在api.php中,而不是web.php
在web.php中放置API路由的问题是这些路由使用的Web中间件包括CSRF保护之类的东西。
您的邮递员图像并没有真正帮助,但是我可以看到您获得“页面已过期”标题,并且我认为问题是CSRF。
因此,解决此问题的最简单方法是将您的API路由放置在api.php中。
这里的路由以'api /'为前缀,因此在这种情况下,新的网址应类似于:
DELETE | http://127.0.0.1:8000/api/article/2
答案 1 :(得分:0)
除了@ joakim-lien答案之外,使用邮递员还将面临另一个问题。
HTML表单不支持PUT,PATCH或DELETE操作。所以,当 定义从HTML调用的PUT,PATCH或DELETE路由 表单,则需要向表单添加一个隐藏的_method字段。的 _method字段发送的值将用作HTTP请求 方法
来源:Form Method Spoofing - Laravel docs
这仅与HTML表单和Postman请求有关,因此,如果要发出DELETE请求,则需要进行POST请求,并将“ _method”字段添加为“ DELETE”