Estoy usando el siguiente código para obtener la dataa desde el servidor:

  $.getJSON('http://xxx.xxx.xxx.xx/SampleWebService/Service.svc/SampleMethod?callback=?', dd, function (data) {
                alert(data);
  });

Desde el servidor, estoy enviando a la matriz de bytes como respuesta.
En firebug, en Net > Response ficha, me sale:

jQuery19101878696953793153_1365677709012([67,37,94,38,42,44,69,67,71,32,97,116,116,97,99,104,101,100,32,102,111,114,32,112,97,116]);

También en Net > JSON ficha, puedo obtener los datos con varias llaves.

Pero cómo obtener los datos en alert(data);; de modo que puedo procesar los datos.
No sé, cómo esta cosa funciona.

Edición:

He probado este enfoque diferente:

 $.ajax({
                type: "GET",
                dataType: "jsonp",
                contentType: "application/javascript",
                data: dd,
                crossDomain: true,
                url: "http://xxx.xxx.xxx.xx/SampleWebService/Service.svc/SampleMethod",
                success: function (data) {
                    alert(JSON.parse(data));
                },
                complete: function (request, textStatus) { //for additional info
                    alert(request.responseText);
                    alert(textStatus);
                },
                error: function(request, textStatus, errorThrown) {
                    alert(textStatus);
                  }
            });

Pero yo tengo: parseerror como alerta.

  • data es la matriz, ¿no es así (¿qué se obtiene a partir de la alerta)? Acaba de usar.
  • el problema es que no tengo ninguna alerta.
  • Hm. ¿Un error? Anexar .fail(alert.bind(window));, o console.log el objeto de que $.getJSON devuelve.
  • No. Por favor, ver la actualización.
  • también si el dato recibido es menor, entonces se entra en success sección. Pero para datos de gran tamaño, da parseerror.
  • Revise su ficha red si la gran respuesta es completa. He escuchado de casos donde el servidor (o algo en el canal de comunicación) chuletas de muy largo respuestas. Y si es completa, tal vez realmente no es válido; vamos a detener el depurador de errores de secuencias de comandos o publicar la respuesta en una desfibradora. Btw: no es necesario JSON.parse con JSONP, como su devolución de llamada se pasa un objeto literal, no un JSON-cadena literal!

InformationsquelleAutor mike44 | 2013-04-11

4 Comentarios

  1. 2

    Mirando en el google docs (no he probado este) usted necesita decirle explícitamente jQuery que usted está haciendo una llamada JSONP que invocará la función que devuelve. Algo como esto:-

     $.ajax({
         type : "GET",
         dataType : "jsonp",
         url : "http://xxx.xxx.xxx.xx/SampleWebService/Service.svc/SampleMethod",
         success: function(data){
               alert(data);
         }
    });
    • No.
    • ¿Qué quiere decir ‘no’? Parece mike44 tomó mi sugerencia a bordo y la agregó a su código y ahora se está poniendo un error diferente.
    • Me refiero a que el docs mencionar que mediante la adición de callback=? a la dirección URL de jQuery cambiará automáticamente a jsonp.
    • Yo no sabía que, pero de cualquier manera, vale la pena tomarse el tiempo para proporcionar la información, en lugar de simplemente decir «no», ¿no crees?
    • Yo no sólo decir «no», me hizo el enlace para que parte de la documentación 🙂
    • huy, lo hiciste. Disculpas

  2. 0

    Función que se busca es JSON.analizar. Por favor, pruebe este código :

    $.post("YouURL", { 'ParameterName': paramvalue }, function (Data) {
      var data = JSON.parse(data);
    });
    • No. a) se utiliza JSONP b) de jQuery haría que para él
  3. 0

    Su respuesta es una llamada a una función. Si u definir el nombre de la función con el nombre jQuery19101878696953793153_1365677709012 puede procesar los datos de los’ demás de su servidor acaba de enviar el json como una respuesta a la $.getJSON de devolución de llamada para trabajar

    • No. El punto de usar $.ajax es que jQuery define que la función para usted.
  4. 0

    El problema era que los datos eran muy grandes. Yo era el envío de matriz de alrededor de 10,00,000+ bytes.
    Así que en lugar de dividir en lista de bytes (cada una con 1000 bytes) & a continuación, se envía como respuesta.

    No sé si esta es la mejor solución, pero no resuelve mi problema.
    Por CIERTO, gracias a todos por ayudarme.

Dejar respuesta

Please enter your comment!
Please enter your name here