Estoy tratando de enviar una solicitud de ELIMINACIÓN a mi servidor backend, pero sigo recibiendo esta respuesta impresa en mi consola:
Response {type: 'cors', url: 'http://localhost:3003/delete', redirected: false, status: 200, ok: true, …} body: (...) bodyUsed: false headers: Headers {} ok: true redirected: false status: 200 statusText: "OK" type: "cors" url: "http://localhost:3003/delete" [[Prototype]]: ResponseNo sé por qué sucede esto.
servidor.js
const express = require('express') const knex = require('knex') const cors = require('cors') const db = knex({ client: 'pg', connection: { host: '127.0.0.1', user: 'postgres', password: 'psql', database: 'blogspot', port: 5432 } }); const app = express(); app.use(express.json()) app.use(cors()) // Delete Blog app.delete('/delete', (req, res) => { const {id} = req.body; db.select('*').from('blogs') .where({ id: id }) .del() .then(() => { res.json('Deleted Successfully') }) .catch(err => res.status(404).json('An error occured')) })fetchAPI.js
function deleteBlog (blog) { fetch('http://localhost:3003/delete', { method: 'DELETE', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(blog) }).then(resp => { console.log(resp) if (resp === 'Deleted Successfully') { navigate(0) } else if (resp === 'An error occured') { console.log('Something went wrong') } else { console.log('ERROR') } }) } Sigo recibiendo 'ERROR' impreso en mi consola junto con la respuesta cors que pegué arriba. Cuando actualizo, encuentro que el blog se eliminó, pero la respuesta fue definitivamente un error ya que no se ejecutó la navigate(0) y se imprimió ERROR en mi consola. Intenté eliminar el encabezado 'Content-Type': 'application/json' y enviar la identificación como parámetros de solicitud, pero obtuve el mismo error.
El hecho de que la respuesta sea del tipo "cors" solo significa que algunos contenidos están filtrados por la política CORS (ver https://developer.mozilla.org/en-US/docs/Web/API/Response/type ) pero no No obtengo ningún código de error, el código de estado es 200.
Dado que el tipo de contenido de su respuesta es JSON, también debe resolver el análisis json antes de leer la respuesta:
function deleteBlog(blog) { fetch('http://localhost:3003/delete', { method: 'DELETE', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(blog) }) .then(data => data.json()) .then(resp => { // I also suppose that you will more likely find // your "Deleted successfully" in the resp.body property, so : if (resp.body === 'Deleted Successfully') { navigate(0) } else if (resp.body === 'An error occured') { console.log('Something went wrong') } else { console.log('ERROR') } }) }