Quiero hacer cambios (crear una entrada) en un archivo JSON a través de una solicitud POST usando las herramientas AXIOS de JavaScript. Todo funciona bien en mi máquina LOCAL ejecutando un servidor json adicional: npx json-server --watch data/db.json
PERO cuando implemento el proyecto en el servidor, no funciona.
He redirigido las URL (a rutas relativas) y he cambiado los permisos en el SERVIDOR (7,7,7). ¡Es inútil! Y lo peor: no obtengo ERROR:
Además, la solicitud POST devuelve el contenido del objeto res.data back (ubicaciones: Array (1)), lo que significa que puede encontrar los datos (la ruta es correcta).
Probé muchas funciones para hacer la solicitud POST pero mi intención inicial era usar el AXIOS. Este es el código que uso para POST req.:
try { const res = await axios({ method: 'post', url: '/data/db.json', data: { country: "USA", city: "New-York", date: "09.03.2022", time: "09:45:00" } }) console.log("Axios Promise Response Data:") console.log(res.data) } catch(err) { console.error(err) }Estructura y contenido del archivo JSON:
{ "locations": [ { "id": 0, "country": "USA", "city": "New-York", "date": "05.03.2022", "time": "08:00:00" } ] }Como dije, un simple XMLHttpRequest() tampoco funciona tan bien (probando por separado):
var xhr = new XMLHttpRequest(); xhr.open("POST", '/data/db.json'); xhr.setRequestHeader("Content-Type", "application/json"); xhr.onreadystatechange = function () { if (xhr.readyState === 4) { console.log(xhr.status); console.log(xhr.responseText); }}; var data = `{ country: "USA", city: "New-York", date: "09.03.2022", time: "09:45:00" }`; xhr.send(data);Cualquier ayuda es apreciada 🤝