Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/11/2015, 17:20
Avatar de zerokull
zerokull
 
Fecha de Ingreso: noviembre-2009
Mensajes: 153
Antigüedad: 14 años, 5 meses
Puntos: 1
regresar valor con ajax

Hola buenas tardes.

Como le puedo hacer para realizar una petición ajax y esta me devuelva datos?
Lo que quiero hacer es una funcion donde solo le ponga la url, (la url es un JSON) recorrer esos datos para despues manipularlos.

Dicha funcion la quiero reutilizar. El json jamas cambia de estructura

esto es lo que llevo
Código Javascript:
Ver original
  1. var arreglo = [],
  2.     arregloMaster = [];
  3.  
  4. $(function () {
  5.  
  6.  
  7.     var urlAjax = "arhivoJoson";
  8.     $.ajax({
  9.         type: 'GET',
  10.         url: urlAjax,
  11.         dataType: 'jsonp',
  12.         //jsonpCallback: 'jsonCallback',
  13.         contentType: "application/javascript; charset=utf-8",
  14.         //async: false,
  15.         cache: false,
  16.         error: function (xhr, ajaxOptions, thrownError) {
  17.             console.log('Error when processing json');
  18.             console.log(xhr.responseText);
  19.         },
  20.         success: function (json) {
  21.             jsonCallback(json);
  22.             //creaHtml();
  23.         }
  24.     });
  25.  
  26. });
  27.  
  28. function jsonCallback(json) {
  29.     var datos = json.RES.R;
  30.     $.each(datos, function (key, item) {
  31.         $.each(item.MT, function (keyAtributos, atributos) {
  32.             arreglo[atributos['@attributes']['N']] = atributos['@attributes']['V'];
  33.         });
  34.         arregloMaster.push(arreglo);
  35.         arreglo = [];
  36.     });
  37.     //return arregloMaster;
  38.     creaHtml(arregloMaster);
  39. }
  40.  
  41. function creaHtml(arregloMaster) {
  42.     var ul = $('<ul/>');
  43.     $.each(arregloMaster, function (k, v) {
  44.         ul.append($('<li>', {
  45.             class: 'cabecera gradiente-rojo',
  46.         }).append($('<a>', {
  47.             href: v['URL'],
  48.             text: v['title']
  49.         }))).appendTo('body');
  50.     });
  51. }
Esto me funciona, pero no se como pueda optimizarlo, para convertirlo en una función y mandarlo llamar cuantas veces sea necesario.

Espero me puedan dar alguna idea