Título: Petición Ajax con clases javascript Publicado por: adryprog en 7 Septiembre 2017, 12:54 pm Saludos a todos/as.
Tengo un .js donde al pulsar un botón llamo a una función (peticion) para hacer una instancia de una clase(peti) con la que voy a hacer la petición ajax al servidor. Con el objeto/instancia creado (p), llamo al método(hacer_peti) para que haga la petición al servidor y me devuelva la respuesta (funtion respuesta). El problema que tengo es que al hacer return dentro de respuesta, no consigo devolver a la instancia creada en un principio ese valor. He probado a intentar hacerlo con variable global y tampoco me sale. Os dejo por aquí el código de "miapp.js" donde creo la instancia: Citar $(function(){ $("#bt_peti").click(peticion); }); function peticion() { var p = new peti(); alert(p.hacer_peti()); } Y por aquí el código de "clases.js" donde tengo la clase peti: Citar // PETICIONES AJAX function peti() { this.hacer_peti = function() { $obj = { nombre: "pepito" }; $.ajax({ url: "peticion.php", type: "POST", data: JSON.stringify($obj), datatype: "json", success: respuesta, error: error }); function respuesta(d) { return(d); } function error(e) { alert("Error: " + JSON.stringify(e)); } } } LLevo rato intentando solucionarlo y creo que al hacer return dentro de function respuesta, no devuelve ese dato a la instancia creada de miapp.js sino que lo devolverá al success de la petición $.ajax. Ojalá puedan ayudarme, no se muy bien qué hacer para solucionarlo. Un saludo y muchas gracias de antemano. Título: Re: Petición Ajax con clases javascript Publicado por: adryprog en 7 Septiembre 2017, 17:12 pm Ya lo he resuelto, por si alguien lo necesita:
Lo único que me faltaba era poner dentro de $.ajax -> async: false. Si se hace sin añadir eso, se hace de forma asíncrona y siempre devuelve un valor indefinido. |