Reaccionar: error de red de Axios

5 minutos de lectura

Esta es la primera vez que uso axios y encontré un error.

  axios.get(
    `http://someurl.com/page1?param1=1&param2=${param2_id}`
  )
  .then(function(response) {
    alert();
  })
  .catch(function(error) {
    console.log(error);
  });

Con la URL y los parámetros correctos, cuando verifico las solicitudes de red, de hecho obtengo la respuesta correcta de mi servidor, pero cuando abro la consola, veo que no llamó a la devolución de llamada, sino que detectó un error.

Error: seguimiento de la pila de errores de red: createError@http://localhost:3000/static/js/bundle.js:2188:15
handleError@http://localhost:3000/static/js/bundle.js:1717:14

  • Es posible que pueda averiguar más sobre esto usando console.log(error.response.data).

    – fúne

    31 de agosto de 2017 a las 11:28

  • Vea esta respuesta, lo ayudará a saber cuál es exactamente el error stackoverflow.com/questions/44806333/…

    – Shubham Jatri

    31 de agosto de 2017 a las 11:37

  • @FaustoNA error.response no está definido

    – Mirakurun

    3 de septiembre de 2017 a las 13:07

  • @ShubhamKhatri aparentemente CORS es el problema

    – Mirakurun

    3 sep 2017 a las 15:27

  • Genial, pudiste resolverlo. Pero maneje los errores con axios como se menciona en el enlace que publiqué

    – Shubham Jatri

    3 de septiembre de 2017 a las 16:18


avatar de usuario de jacobhobson
jacobhobson

Si crea una API usando NodeJS


Su aplicación Express necesita usar CORS (intercambio de recursos de origen cruzado). Agregue lo siguiente a su archivo de servidor:

// This should already be declared in your API file
var app = express();

// ADD THIS
var cors = require('cors');
app.use(cors());

Para una comprensión más completa de CORS, lea el Documentación de Mozilla sobre CORS.

  • No estoy usando Express. Estoy usando Axios en la aplicación ReactJS. ¿Qué puedo hacer para usar CORS en axios?

    – Ahmed

    12 de agosto de 2019 a las 21:13

  • Un punto importante es agregar el cors middleware antes del código que maneja la solicitud

    – Deniz Ozger

    25 de agosto de 2020 a las 19:22

  • ¡GRACIAS!, Salvavidas. Estaba intentando ejecutar una aplicación angular que se comunicaba con el nodo desde mi teléfono y no funcionó. Incluso cuando funcionaba desde mi computadora. Si el nodo no puede encontrar CORS “módulo no encontrado”, simplemente ejecute npm install cors.

    – Ramón Araújo

    17 de septiembre de 2020 a las 8:01

  • esta respuesta también se aplica a NestJS, obtuve el mismo error en el lado del cliente y tuve que agregar { cors: true } a NestFactory.create. – ,,,,, app = await NestFactory.create(AppModule, { cors: true });

    – Ofir G

    26 de marzo de 2021 a las 14:48

  • Estoy usando django. ¿Cómo puedo solucionar este problema?

    – Sumit

    2 mayo 2021 a las 16:34

Avatar de usuario de Mahdieh Shavandi
mahdieh shavandi

mi problema era sobre la url que estaba solicitando. yo no había insertado http:// al principio de mi url. Quiero decir que estaba solicitando una URL como 92.920.920.920/api/Token en lugar de http://92.920.920.920/api/Token. agregando http:// resolvió mi problema

  • Estoy usando eso, incluso subo mi aplicación nodejs a heroku

    – barro atado

    4 de abril de 2020 a las 16:33

Ocurre cuando trabajas en localhost y olvidaste agregar http://

uso incorrecto

  const headers = {
    "Content-Type": "application/json",
    Authorization: apiKey,
  };
  const url = "localhost:5000/api/expenses/get-expenses";

  axios.get(url, { headers });

  // NETWORK ERROR

el correcto es

  const headers = {
    "Content-Type": "application/json",
    Authorization: apiKey,
  };
  const url = "http://localhost:5000/api/expenses/get-expenses";

  axios.get(url, { headers });

  // WORKS FINE IF YOU HANDLED CORS CORRECTLY IN THE SERVER SIDE

  • Olvidar el puerto hizo que no funcionara para mí, y esto me ayudó a desencadenar el pensamiento, ¡gracias!

    – Jim

    23 de marzo de 2021 a las 19:52

Además de la respuesta de @jacobhobson, también usé algunos parámetros para que funcionara.

app.use(cors({origin: true, credentials: true}));

Avatar de usuario de Hassaan Rana
hassaan rana

Estaba teniendo el mismo problema con la producción en la gota digital del océano. yo estaba usando axios en ReaccionarJS llamar Nodo.js API.

Aunque incluí cors

const cors = require('cors');
app.use(cors());

Pero aún tenía que agregar

res.header( "Access-Control-Allow-Origin" );

antes de llamar a mi controlador. Y funcionó para mí. Allí me di cuenta de que cors no funciona correctamente. Así que los desinstalé y los volví a instalar y ¡Funciona!

El código completo está aquí.

Así que o usas

 app.use(function(req, res, next) {
  res.header("Access-Control-Allow-Origin", "*");
  res.header('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
  res.header("Access-Control-Allow-Headers", "x-access-token, Origin, X-Requested-With, Content-Type, Accept");
  next();
});

o usar

app.use(cors());

Es lo mismo.

  • y donde debo incluir cors “` const cors = require(‘cors’); app.use(cors()); “` ?

    – Juan

    4 de julio de 2020 a las 8:23


  • Puede usarlo antes de llamar a sus rutas en server.js o si está usando algún software intermedio, puede colocar estas líneas allí. PD: también actualicé mi respuesta.

    – Hassan Rana

    14 de julio de 2020 a las 17:42

  • tengo uso app.use(cors()); aunque muestra un error de red. Pero no siempre recibo este error. Estoy llamando a una API para la carga de videos. Despues de llamar varias veces me esta tirando el error de red.

    – Jayna Tanawala

    17 de agosto de 2021 a las 6:04

  • @JaynaTanawala ¿Has instalado cors? Intente ejecutar “npm install cors –save”

    – Hassan Rana

    30 de noviembre de 2021 a las 7:58

  • si. Haberlo instalado.

    – Jayna Tanawala

    2 de diciembre de 2021 a las 6:03

Avatar de usuario de Skoua
Skoua

Recibí un error de red con axios 0.27.2 cuando intentaba cargar una imagen en nuestro servidor. Después de configurar encabezados como los siguientes, no se recibe ningún error.

headers:{"Accept":"application/json, text/plain, /","Content-Type": "multipart/form-data"}

y debe verificar con el tipo de cuerpo de su solicitud de API en su colección, como si se trata de datos de formulario o x-wwww-form-urlencoded o ..etc.

  • y donde debo incluir cors “` const cors = require(‘cors’); app.use(cors()); “` ?

    – Juan

    4 de julio de 2020 a las 8:23


  • Puede usarlo antes de llamar a sus rutas en server.js o si está usando algún software intermedio, puede colocar estas líneas allí. PD: también actualicé mi respuesta.

    – Hassan Rana

    14 de julio de 2020 a las 17:42

  • tengo uso app.use(cors()); aunque muestra un error de red. Pero no siempre recibo este error. Estoy llamando a una API para la carga de videos. Despues de llamar varias veces me esta tirando el error de red.

    – Jayna Tanawala

    17 de agosto de 2021 a las 6:04

  • @JaynaTanawala ¿Has instalado cors? Intente ejecutar “npm install cors –save”

    – Hassan Rana

    30 de noviembre de 2021 a las 7:58

  • si. Haberlo instalado.

    – Jayna Tanawala

    2 de diciembre de 2021 a las 6:03

Avatar de usuario de Amir Mehrnam
Amir Mehrnam

En mi caso usé “https” en lugar de “http“, comprueba eso también.

  • por ejemplo, debe usar https://api.coincap.io/v2/assets No api.coincap.io/v2/assets en la URL de Axios

    – paydarsefat

    21 de mayo de 2022 a las 8:54


¿Ha sido útil esta solución?