Cuando busco con cualquier método ( POST , DELETE , etc.), en cualquier URL, se activa una solicitud GET adicional en dicha URL. Este es un problema en el caso de un DELETE /items/:id que seguido de un GET /items/:id provoca un error porque intenta procesar la página esbelta relacionada con undefined como datos de entrada.
Probé con varias páginas y varios métodos, con console.log s al principio de los puntos finales, este comportamiento es siempre el mismo.
No tengo gancho y no recargo la página después de las solicitudes. Todas mis llamadas de fetch están contenidas en funciones que solo pueden llamarse a través de eventos en el DOM, por lo que no hay nada en la raíz del script.
Aquí hay un ejemplo de un punto final DELETE (principalmente estoy probando contra este):
export const DELETE = async ({params}) => { await meta.findOneAndDelete({url: params.url}) return {} }Incluso ocurre con esto:
export const POST = async () => { return {} } Llamo a este punto final con un fetch(/items/${url}, {method: 'POST'}) detrás de un evento de clic, y desencadena un GET /items/:url cada vez. Debo señalar que estas solicitudes GET no están visibles en las herramientas de desarrollo, solo veo los console.log que puse en los puntos finales GET y los posibles errores en la consola del servidor.
Parece que estos puntos finales redirigen a GET /items, probablemente para que funcionen bien con formularios HTML (lo cual es divertido para el punto final DELETE, ya que los formularios solo admiten GET y POST).
Puede usar la opción de redirect en su llamada de fetch :
fetch(url, { method: 'POST', redirect: 'manual', });Esto cancelará automáticamente la siguiente solicitud.