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));
, oconsole.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, daparseerror
. - 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!
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:-
callback=?
a la dirección URL de jQuery cambiará automáticamente a jsonp.Función que se busca es JSON.analizar. Por favor, pruebe este código :
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
$.ajax
es que jQuery define que la función para usted.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.