首页 > 解决方案 > Axios - 尝试从数据库中删除用户时收到 404 错误

问题描述

所以我目前正在尝试通过单击删除按钮从 mySql 数据库中删除用户。该应用程序是 Laravel 后端,React 前端。

当我单击删除按钮时,它返回 404 错误“DELETE http://localhost:8000/delete/5 404 (Not Found)”

onDelete 方法:

onDelete(user_id) {

        axios.delete('http://localhost:8000/users/delete/' + user_id)
            .then((response) => {

            })
    }

用户控制器

public function destroy($id)
    {
        $user = User::find($id);
        $user->delete();
    }

代码中的按钮:

<button onClick={this.onDelete.bind(this, Users.id)}>Delete</button>`

网络路线:

Route::delete('users/delete/{id}', 'Api\UserController@destroy');

错误包含正确的 id(错误代码 url 中的最后一个数字是我要删除的用户的正确 id)但我不知道为什么它给了我 404 错误。

更新原来删除路线不在我的路线列表中。(php工匠路线:列表)

Route::get('userList', 'Api\UserController@index'); 
Route::post('users/store', 'Api\UserController@store'); 
Route::delete('users/delete/{id}', 'Api\UserController@destroy'); 

奇怪,因为 get 和 post 路线在路线列表中,但不是我的删除路线。(上面的代码在我的 web.php 文件中)所有三个方法(索引、存储和销毁)都在我的 UserController 控制器中:


public function index()
    {
        $result = User::all();
        return $result;
    }

public function store(Request $request)
    {
        $user = new User();
        $user->name = $request->user_name;
        $user->email = $request->user_email;
        $user->phone_number = $request->user_phoneNumber;
        $user->account_type = $request->user_accType;
        $user->qualifications = $request->user_qualifications;
        $user->save();
    }

public function destroy($id)
    {
        $user = User::find($id);
        $user->delete();
    }

标签: reactjslaravelaxios

解决方案


首先是了解错误代码在说什么,根据这个 404 Not Found 客户端错误响应代码表示服务器找不到请求的资源,首先尝试以某种方式清理这个

 onDelete(user_id) {
    url = `http://localhost:8000/users/delete/${user_id}`;
    //here make sure url is fine with Id
    axios.delete(url)
        .then((response) => {

        })
    }

在此之后,您必须检查网络调用,无论请求是否可以通过 id 发送到服务器。然后最后仔细检查 api 期待删除调用或期待使用 id 进行删除调用的 get 调用,因为许多后端人员使用 get 调用删除记录。如果仍然没有修复,请回复我。


推荐阅读