使用axios向后端發送json數據,在前端測試時成功傳遞,但后端卻無法接收到數據,這是一個很常見的問題。
我們來看一下可能的原因。
1. axios默認發送Content-Type為application/json的請求頭,在傳輸數據的過程中,后端需要通過某種方式解析json數據。如果后端無法解析json,則會導致接收失敗。
axios.post('/api/user', { name: 'john', age: 18 }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });
在上面的代碼中,我們向后端發送{name: 'john', age: 18}數據。如果后端要正確接收到這個數據,需要在路由或控制器中添加一些額外的處理代碼,以解析json格式的請求。
2. 如果你在后端使用了header('Content-Type: application/json');或者設置了response header的content-type為application/json,則必須在前端使用JSON.stringify將數據轉換為json字符串。
axios.post('/api/user', JSON.stringify({ name: 'john', age: 18 }),{ headers:{'Content-Type': 'application/json'} }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); });
在上面的代碼中,我們將{name: 'john', age: 18}數據轉換為json字符串,然后在發送請求時,設置Content-Type為'application/json',這樣后端才能正確地解析數據。
綜上所述,axios后端收不到json的問題可能是由于發送的數據格式不正確或者后端未正確解析json導致的,我們可以根據具體的情況進行排查和處理。