Как использовать метод delete с Json-сервером и Axios?
Я делаю проект и использую json-server
а также axios.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 (не найдено)
Кто-то может мне помочь?
6 ответов
Вы могли бы запросить надлежащее uri
с DELETE
метод.
пример:
DELETE /users/1
http://localhost:4000/users/1
попробуйте изменить имя первичного ключа вашего 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
}
]
}
Вот несколько разных предложений.
1) вместо запятой попробуйте axios.delete('http://127.0.0.1:3000/people/' + id)
так что просто будет думать, что URL http://127.0.0.1:3000/people/3
или что угодно
2) передать идентификатор через объект конфигурации, так axios.delete('http://127.0.0.1:3000/people/', {params: {id: id})
Как только вы получите удаление, работающее: я считаю, что ответ на запрос DELETE является пустым объектом, так что вы будете устанавливать state.filtered = {}
, Я предполагаю, что вы хотите список людей без человека, которого вы только что удалили?
Попробуйте это, axios.delete(http://127.0.0.1:3000/people/${id}
)
Я просто столкнулся с этой проблемой. Синтаксис axios.method(url/id) работает только с GET и POST. Для удаления я использовал это:
axios({
method: 'DELETE',
url: 'http://127.0.0.1:3000/people/' + id
});
axios.delete('http://127.0.0.1:3000/people/'+id, )
.then(function(response) {
this.setState({
filtered: response
})
}).catch(function(error) {
console.log(error)
})