Por favor, considere el siguiente fragmento de código:

$(function () {
     $.ajax({
        type: "GET",
        url: "http://mosaicco.force.com/siteforce/activeretailaccounts",
        dataType: "jsonp",
        crossDomain: true,
        jsonp: "callback",
        error: function(jqXHR, textStatus, errorThrown) {   
            alert('Error Message: '+textStatus);
            alert('HTTP Error: '+errorThrown);
            },
        success: function (data) {
                var i = 0;
                       //Process JSON
                       $.each(data, function () {
                             var name = this.locname;
                             var lat = this.lat;
                             var lng = this.lng;
                             var address = this.address;
                             var address2 = this.address2;
                             var city = this.city;
                             var state = this.state;
                             var postal = this.postal;
                             var phone = this.phone;
                             var web = this.web;
                             web = web.replace("http://", "");

                             var distance = GeoCodeCalc.CalcDistance(orig_lat, orig_lng, lat, lng, GeoCodeCalc.EarthRadiusInMiles);

                             //Create the array
                             locationset[i] = new Array(distance, name, lat, lng, address, address2, city, state, postal, phone, web);

                             i++;
                      });
                  }
        });
 });​

Estoy tirando JSON cruz de dominio y por alguna razón me sale un parseerror devuelto:

HTTP Error:Error: jQuery17209875996995251626_1343943259805 was not called

Soy capaz de ver los datos correctamente en la página – y la devolución de llamada se parece a esto:

callback:jQuery17209875996995251626_1343943259805_:1343943260015

Por favor me ayude a diagnosticar lo que me falta, gracias!

InformationsquelleAutor McKev | 2012-08-02

1 Comentario

  1. 4
    var data = $.parseJSON(data);

    Ya que están haciendo un JSONP solicitud, usted recibirá un literal de objeto pasa a la función de devolución de llamada. Usted no puede utilizar parseJSON en que. De todos modos, jQuery, es inteligente y siempre hace el analizar si el tipo de contenido que se conoce.

    No está seguro de si el que provoca el mensaje de error, pero a la pregunta jQuery JSON de respuesta siempre desencadena un ParseError esta fue la solución.


    OK, que‘s simple. Mira la script de carga: Que no es válido JSONP – se echa de menos la devolución de llamada relleno. También, el tipo mime es el correcto: Para un JSONP secuencia de comandos, debe ser text/javascript o application/javascript, para el JSON que se entregue debe ser application/json.

    jQuery no detecta la carga de la «secuencia de comandos», pero como nada es ejecutado lanza un error de que «el dado de devolución de llamada que no fue llamado pesar de que el archivo se ha cargado correctamente» – parseerror sospecha.

    Está seguro de que el webservice apoya JSONP en todo?

    • Sí, lo siento, que estaba a la izquierda de un número anterior. Me he quitado y sigo recibiendo el mismo error. Aquí es lo que tengo uso de jsFiddle jsfiddle.net/ALeez/2
    • Bergi es correcto, mosaicco.force.com/siteforce/… no produce válido JSONP; debe mirar como tus datos json envuelto en una invocación de función. Si lo hacen, de hecho, el apoyo JSONP, es probable que el parámetro de cadena de consulta para la devolución de llamada es diferente.
    • JSON es compatible marcado esto como la solución, porque se trataba de una cuestión de ajuste de la devolución de llamada como se indica.

Dejar respuesta

Please enter your comment!
Please enter your name here