Javascript 出于某种原因,axios.post.then()忽略了then()部分
我有这个功能Javascript 出于某种原因,axios.post.then()忽略了then()部分,javascript,axios,Javascript,Axios,我有这个功能 function waterCalibrator() { axios.post("http://localhost:3001/api/update-water", { waterValue: props.moisture }).then(function(response){ console.log("Water calibration worked") console.log(resp
function waterCalibrator() {
axios.post("http://localhost:3001/api/update-water", {
waterValue: props.moisture
}).then(function(response){
console.log("Water calibration worked")
console.log(response);
}).catch(function(error) {
console.log(error);
})
props.airValueObject.setWaterFlag(true);
props.airValueObject.setWaterValue(props.moisture);
}
有人能解释一下为什么then()从未被触发吗?我没有错误。它根本没有触发。除了这个,一切都正常
}).then(function(response){
console.log("Water calibration worked")
console.log(response);
}).catch(function(error) {
console.log(error);
})
服务器端看起来像这样
app.post("/api/update-water", (req, res) => {
const waterValue = req.body.waterValue;
const sqlUpdateWater = "UPDATE user SET waterValue=? WHERE uid='j' ";
db.query(sqlUpdateWater, [waterValue], (err, result)=>{
console.log(`water is: ${waterValue}`)
})
})
您将获得一个,这意味着请求已成功通过,但根本没有内容,因此您尝试不记录任何内容
HTTP 204无内容成功状态响应代码表示请求已成功,但。。。常见用例是作为PUT请求的结果返回204,更新资源,而不改变显示给用户的页面的当前内容。如果创建了资源,则返回201 created。如果页面应更改为最新更新的页面,则应使用200
正如前面的评论所建议的,您还需要打开开发控制台并检查承诺本身的状态。这一承诺似乎是成功的
如果这个答案有助于解决问题,考虑接受答案或投票表决。谢谢。如果
没有被触发,那么捕获也不会比承诺永远无法解决。。。不尝试使用async/await?应该是这样。打开DevTools的Network选项卡,检查请求发生了什么…它给出了一个2040的状态。您的代码很好,似乎您正在请求一些不可用的东西。。。非常感谢。我会在几小时后检查这件事,当我回到家,让你知道这是否解决了它。这是完全可能的。我想你没有检查答案是否解决了问题?对不起,我有其他事情要做。我现在正在检查,我会让你知道的。所以这就是问题所在。谢谢你的帮助。为了澄清原因,我没有这两行。。。。。res.send(“成功”);res.end();所以没有任何东西被送回前端。愚蠢的错误。