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

124
Vistas
Devolver resultado de cadena del método Ajax

Tengo un gráfico de DoughnutChart y me gustaría cambiar el color de sus partes con respecto a los códigos hexadecimales de color guardados en la base de datos. Utilicé este método Ajax para obtener la cadena de color invocando un método de acción que devuelve JSON Result,

 getcolors: function getcolors(name) { return $.ajax({ url: "/api/ideas/getcolors", data: { name: name }, type: "GET", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data, textStatus, jqXHR) { // return data; }, error: function (data) { // return "Failed"; }, async: true });

pero en lugar de recibir la cadena, recibí el Objeto {readyState: 1} en la ventana de la consola ingrese la descripción de la imagen aquí

Sin embargo, puedo encontrar el valor del color almacenado en el elemento ResponseText. Necesito su ayuda sobre cómo puedo obtener el valor del color como cadena.

EDITAR :

Para dejar las cosas más claras, ahí es donde me gustaría invocar el método ajax para recibir la cadena de colores y luego podré insertar la matriz de colores del gráfico.

 getColorArray: function getColorArray(categories) { var colors = []; for (var i = 0; i < categories.length; i++) { console.log(this.getcolors("Risk")); //colors.push(this.getcolors(categories[i])); } return colors; }
about 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

¿Por qué tu código es así?

 success: function (data, textStatus, jqXHR) { // return data; },

¿Lo usaste?

 success: function (data, textStatus, jqXHR) { console.log(data); }

Bien, lo tengo. Cuando usa una solicitud ajax, trabajará con datos asincrónicos, para hacer esto necesita devolver una promesa en su método. Por favor, intenta usar el código de abajo.

 getcolors: function getcolors(name) { return $.ajax({ url: "/api/ideas/getcolors", data: { name: name }, type: "GET", contentType: "application/json; charset=utf-8", dataType: "json", }); }

Y para usar su función use este código:

 getcolors("name").done(function(result){ console.log(result); });

O puede usar una devolución de llamada

 getcolors: function getcolors(name, success, error) { return $.ajax({ url: "/api/ideas/getcolors", data: { name: name }, type: "GET", contentType: "application/json; charset=utf-8", dataType: "json", success: function(data){ success(data); }, error: function(data){ error(data); } }); }

... Y para usar con devoluciones de llamada:

 getcolors("name", function(data){ //success function console.log(data); }, function(){ //Error function console.log(data); })

Pruebe una de estas opciones y diga el resultado.

about 4 years ago · Santiago Trujillo Denunciar

0

La solución

En primer lugar, me gustaría agradecer a Mateus Koppe por sus esfuerzos, a través de su solución obtuve la forma de resolver mi problema. a una función de devolución de llamada que maneja el resultado de la siguiente manera:

 getcolors: function getcolors(name, handleData) { $.ajax({ url: "/api/ideas/getcolors", data: { name: name }, type: "GET", contentType: "application/json; charset=utf-8", dataType: "json", success: function (data) { handleData(data.responseText); //return data.responseText; }, error: function (data) { handleData(data.responseText); //return data.responseText; }, async: false });

luego trabajé con getColorArrayModified para recorrer mi lista de categorías y completar su propio color.

 getColorArrayModified: function getColorArrayModified(categories) { var colors = []; for (var i = 0; i < categories.length; i++) { this.getcolors(categories[i], function (output) { colors.push(output); }); } return colors; }

Gracias por todo :).

about 4 years ago · Santiago Trujillo 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