Vue.JS POST-запрос Axios.hen метод
Я застрял!
Я отправляю запрос POST на сервер через AXIOS из приложения VUE. Все работает и сервер отвечает. Проблема в том, что метод.then никогда не вызывается. Как это может быть? Бонусный вопрос, как вы делаете свои запросы от VUE?
Большое спасибо
methods:{
customMethod1: function() {
//AXIOS
var config = {
headers: {'My Custom Header 1': 'Header-Value'}
};
//POST request
axios.post('http://192.168.56.101:5000/post1', {name: 'Dave'}, config)
.then(function(response){
alert("posted successfully");
});
},
}
2 ответа
Подтвердили ли вы с помощью такого инструмента, как Fiddler, что сервер действительно отправляет ответ? Возможно, сервер на самом деле никогда не отвечает.
Я только что нашел решение, и я не знаю, должен ли я поделиться им с человеком, который разместил этот вопрос: он мог бы по крайней мере ответить другим, пытающимся помочь ему. Поскольку я нахожу здесь много ответов, я публикую свое решение (возможно, не правильный ответ, но оно работает)
Это не проблема vue.js и не axios, оператор.then вызывается только тогда, когда вы что-то возвращаете на стороне сервера.
Некоторый код для объяснения:
Product.update(
{
productName: req.body.productName,
productDesc: req.body.productDesc,
productOwner: 0,
productImage: req.body.productImage,
productState: req.body.ProductState,
productPrice: req.body.ProductPrice
},
{
where: {
id: req.body.id
}
})
.then(function (item) {
console.log("Product update " + item.id);
res.send({id: item.id});
})
.catch(function (err) {
console.log("Product update error " + err);
});
Важная строка здесь:
res.send({id: item.id});
Если вы ничего не возвращаете на стороне сервера, то ваш.hen на стороне клиента не вызывается.
дайте мне знать, если это работает, но +1 мне;-)