const data = { name, price, quantity, image, desc, sup_name, email } fetch('https://gentle-plateau-90897.herokuapp.com/fruits', { method: 'POST', headers: { 'content-type': 'application/json' }, body:(data) }) .then(res => res.json()) .then(data => { console.log(data) window.alert('Item added') e.target.reset() })Estoy tratando de publicar un método para enviar datos a mi base de datos MongoDB, pero arroja un error que dice 'Error de sintaxis no detectado (en promesa): token inesperado < en JSON en la posición 0'
Unexpected token < in JSON at position 0 significa que está recibiendo una respuesta HTML en lugar de una respuesta json y está intentando convertirla a json. Verifique el cuerpo de la respuesta en la pestaña de red en la herramienta de desarrollo. Es posible que devuelva HTML porque no incluyó Accept: application/json como encabezado o ocurrió algún error.
El error se debe a la conversión de la res que obtiene de la API. El res es algo que no se puede convertir a JSON válido.
Por el error, parece que la res podría ser una cadena HTML y convertirla a JSON siempre generará un error. Para usarlo, debe usar innerHTML en la vista.
const data = { name, price, quantity, image, desc, sup_name, email } fetch('https://gentle-plateau-90897.herokuapp.com/fruits', { method: 'POST', headers: { 'content-type': 'application/json' }, body:(data) }) // .then(res => res.json()) // remove this line for now .then(data => { /** check here what type of data you are getting is it valid JSON or not? */ console.log(data) window.alert('Item added') e.target.reset() })