Comportamiento extraño en la llamada jquery ajax

Tengo un comportamiento extraño, a continuación se muestra la llamada jquery ajax a mi página.

En realidad, cuando mi página se está cargando, tiene dos menús desplegables desde donde llama debajo de la solicitud ajax para ambos menús desplegables, por lo que dos llamadas a la misma página.

  //alert("Test");
    var serviceReq = "http://localhost:2853/jsonproxy/jsonprxy.aspx"; 
    $.ajax({
        url: serviceReq,
        //type: "POST",
        contentType: "application/json; charset=utf-8",
        dataType: "jsonp",
        jsonpCallback: "airportXML",
        cache: true,
        success: function(data, textStatus, jqXHR) {
            var xmlDoc = $.parseXML(data);
            //alert("data" + data);
            x = xmlDoc.documentElement.childNodes;
            for (i = 0; i < x.length; i++) {
                document.write(x[i].nodeName);                        
                document.write("<br />");
            }

            //alert(oData);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert(textStatus + "---" + errorThrown);
        }
    });

El problema es que nunca pasa al éxito, por lo que nunca obtengo esta //alerta("datos" + datos); siempre da un error que dice "parsererror:airportxml no es una función" y puedo garantizar que la respuesta devuelta es JSON perfecta.

El comportamiento extraño surge si comento esta línea jsonpCallback: "airportXML", Jquery da una devolución de llamada predeterminada, es decir, algo jquery12121212_2323232 y todo funciona bien, sin embargo, no quiero esto porque busco tener una llamada de caché para esto.

Una cosa más extraña, si pongo alert (//alert("Test");) antes de esta llamada y todo funciona perfectamente para mí sin comentar jsonpCallback: "airportXML" y obtengo una alerta de éxito.

Creo que mi llamada no se está completando a tiempo completo.

¡¡Por favor recomiende!!

preguntado el 22 de mayo de 12 a las 16:05

La airportXML función is definido, ¿verdad? ¿Con el mismo caso? -

sí, airportxml es una función de devolución de llamada para mi llamada jsonp -

1 Respuestas

Creo que para resolver el problema anterior, necesito usar

async: false, para mi primera llamada, para que mi próxima llamada se complete.

Por favor sugiera esto.

EDITAR: ¿La llamada entre dominios JSNOP permite llamadas síncronas?

Gracias.

contestado el 23 de mayo de 12 a las 07:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.