0

Como puedo guardar el valor de mi respuesta AJAX en esta variable como lo muestra el código pero no me funciona

var resp = "";
var UpdateComponent = function(){
        var rute__ =  "http://localhost/comunity/foro/getPostCurrent/",
            loc = window.location,
            index = loc.pathname.indexOf("ost/"),
            pathName = loc.pathname.substring(index+4, loc.pathname.length );
            var resp = ""; 
            $.ajax({
                url:rute__,
                type:"POST",
                data:{rute:pathName},

                success:function(data){
                    var parse = "";
                    if(data != ""){
                        parse = JSON.parse(data);
                        resp = "como estan";

                    }
                }
            });
        return resp;    


    };
Bender Paisa
  • 12,491
  • 4
  • 23
  • 41
  • tu pregunta te traera problemas, estas retornando una funcion asincrona , para eso utiliza los callback que te comenteo @PabloLozano en el posible duplicado – JackNavaRow Dec 13 '17 at 20:20

1 Answers1

0

Estas definiendo resp en dos lugares, fuera de la función y dentro. Pero bueno lo que tienes es un error de no saber como funciona el scope de javascript , crea la variable fuera var resp = "", luego en el success de la petición ajax, asignale el valor que deseas , y luego que se ejecute la función es que resp tendrá un valor, ejemplo simplificado:

var resp = ""
function Mia(){
 $.ajax({
....
success:function(data){ resp = data.texto    }
 })
}

//resp = ""
//ejecuto la función
Mia()
// aquí resp = el valor de data.texto que se le dio en el success
Asney
  • 1,324
  • 9
  • 21