Cuando intento enviar una matriz de datos a la interfaz, funciona bien, pero cuando intento enviar un texto de muestra a la interfaz desde el servidor, aparece el error Unexpected token T in JSON at position 0 . Recibo este error en console.log(data) .
fetch("/something", { method: "POST", headers: {'Content-Type': 'application/json'}, body: JSON.stringify(data) }).then(function (response) { // The API call was successful! console.log(response); return response.json(); }).then(function (data) { // This is the JSON from our response console.log(data); }); router.post('/something', () => { console.log(req.body); res.send('This is sample'); });Esto se debe a que res.send() establece automáticamente el encabezado de respuesta de tipo de contenido en función del argumento pasado al método send(). En su caso, send() no detecta un objeto json como argumento. Entonces, el tipo de contenido no es json en el encabezado de respuesta.
Podría usar el método res.json() para enviar la cadena como json.
router.post('/something', () => { console.log(req.body); res.json('This is sample'); }); O bien, pase un objeto javascript a res.send() y lo convertiría automáticamente en json.
router.post('/something', () => { console.log(req.body); res.send({data: 'This is sample'}); }); Nota: res.json() usa res.send() bajo el capó. Lea este artículo para comprender la diferencia entre los dos métodos.