Laravel 资源控制器 DELETE 使用 Axios 抛出 405

Laravel resource controller DELETE throws 405 with Axios

我正在使用 React + laravel 开发一个简单的 crud 应用程序。我正在使用 Axios 向服务器发出请求。 GET,POST 工作正常。我可以使用 POST 方法 (axios.post) 创建一个新项目。但是,当我尝试删除一个项目时,laravel 抛出 405 错误,它代表 'Method Not Allowed'

这是我的路线:

Route::resource('items', 'ItemController');

这是我的 destroy() 方法:

public function destroy($id)
    {
      $item = Item::find($id);
      $item->delete();

      return response()->json('Successfully Deleted');
    }

这是我使用 axios 的删除函数:

export function deleteItem(data) {
  let url = BASE_URL+'/items';
  return axios.delete(url,data).then((response) => {
    return response;
  });
}

我对此做了一些研究,发现 laravel 也理解“_method”参数。所以我证实了以下内容:

export function deleteItem(data) {
  let url = BASE_URL+'/items';
  let payload = {'id' : data, '_method' : 'DELETE'};
  return axios.post(url,payload).then((response) => {
    return response;
  });
}

但还是没有运气。它总是抛出 405。有什么线索吗?

我正在使用最新版本的 axios & laravel。

问题是 laravel 中的资源删除期望通过 url 发送 id

public function destroy($id){
   // ..find delete 
}

在你的情况下你没有发送 id,因此 laravel returns a notfoundhttpexception

因此,将 url 更改为 smth:let url = BASE_URL_'/items/'+this.id;

Controllers