Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

173
Vistas
variable indefinida bajo jquery payload

Estoy tratando de publicar algunos datos en una API, pero tengo problemas con javascript.

 function pushData() { let rawdata; $.ajaxSetup({ async: false }); $.getJSON('https://api.db-ip.com/v2/free/self', function(result) { result = rawdata; }) console.log(rawdata); let message = { "ip": rawdata.ipAddress, "country": rawdata.countryName, "city": rawdata.city }; console.log(message); $.ajax({ url: "https://xxxx.execute-api.eu-west-2.amazonaws.com/get", headers: {}, /* crossDomain: true, */ type: "GET", success: function(result) { console.log(result); }, error: function() { console.log("error"); } }) } $.ajax({ url: "https://xxxx.execute-api.eu-west-2.amazonaws.com/post", crossDomain: true, type: "POST", contentType: "application/json; charset=utf-8", dataType: "json", data: JSON.stringify(message), success: function(result) { console.log(result); }, error: function() { console.log("error pushing data"); } })

Recibo un error de Uncaught ReferenceError: message is not defined , aunque creo que el message es una variable global, por lo que debería llamarse correctamente en la carga útil. ¿Qué estoy haciendo mal aquí?

Gracias a todos por su respuesta de antemano, solo estoy tratando de escribir un script rápido para mi API aquí.

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

message es una variable local en la función pushData() , no una variable global. Pero incluso si fuera global, tendría que llamar a la función antes de la segunda llamada $.ajax() .

Mueva la segunda llamada AJAX dentro de la función para que pueda acceder a la variable. Y adopte la asincronía, no la combata con async: false . Anide las sucesivas llamadas AJAX dentro de la función de devolución de llamada de la anterior.

 function pushData() { $.getJSON('https://api.db-ip.com/v2/free/self', function(rawData) { console.log(rawdata); let message = { "ip": rawdata.ipAddress, "country": rawdata.countryName, "city": rawdata.city }; console.log(message); $.ajax({ url: "https://xxxx.execute-api.eu-west-2.amazonaws.com/get", headers: {}, /* crossDomain: true, */ type: "GET", success: function(result) { console.log(result); $.ajax({ url: "https://xxxx.execute-api.eu-west-2.amazonaws.com/post", crossDomain: true, type: "POST", contentType: "application/json; charset=utf-8", dataType: "json", data: JSON.stringify(message), success: function(result) { console.log(result); }, error: function() { console.log("error pushing data"); } }) }); }, error: function() { console.log("error"); } }) }

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda