如何使用Json-server和Axios删除方法?

时间:2018-04-25 17:52:39

标签: javascript reactjs axios json-server

我正在使用json-serveraxios.js进行项目,但我在方法delete中遇到问题。

我的axios.js

remove = (id) => {
  axios.delete('http://127.0.0.1:3000/people/', id)
    .then(function(response) {
      this.setState({
        filtered: response
      })
    }).catch(function(error) {
      console.log(error)
    })
}

路由http://127.0.0.1:3000/people属于json.server ..

错误:

  

无法加载资源:服务器响应状态为404(未找到)

有人可以帮助我吗?

4 个答案:

答案 0 :(得分:0)

以下是一些不同的建议。

1)不要使用逗号,请尝试axios.delete('http://127.0.0.1:3000/people/' + id),这样它只会认为网址为http://127.0.0.1:3000/people/3或其他

2)通过配置对象传递id,所以axios.delete('http://127.0.0.1:3000/people/', {params: {id: id})

删除工作后:我相信DELETE请求的响应是空对象,因此您要设置state.filtered = {}。我假设你想要没有你刚删除的人的人名单?

答案 1 :(得分:0)

您可以使用uri方法请求正确的DELETE

示例:

DELETE /users/1

http://localhost:4000/users/1

答案 2 :(得分:0)

我刚遇到这个问题。 axios.method(url / id)语法似乎仅适用于GET和POST。对于删除,我使用了以下方法:

axios({
  method: 'DELETE',
  url: 'http://127.0.0.1:3000/people/' + id
});

答案 3 :(得分:0)

<块引用>

尝试将您的 json 对象主键名称更改为 id,我认为您 可能有这样的

   {
  "tasks": [
    {
      "task_id": 2,
      "task_name": "test2",
      "day": "may 20 2021",
      "reminder": true
    },
    {
      "task_id": 3,
      "task_name": "test3",
      "day": "june 2 2021",
      "reminder": true
    }
  ]
}
<块引用>

像这样改变并尝试,它对我有用

  {
  "tasks": [
    {
      "id": 2,
      "task_name": "test2",
      "day": "may 20 2021",
      "reminder": true
    },
    {
      "id": 3,
      "task_name": "test3",
      "day": "june 2 2021",
      "reminder": true
    }
  ]
}