2012-04-26 14 views
6

he conseguido en una situación en la que estoy obligado a hacer una JSONP Ajax solicitud GET (dominios) y tengo que enviar un documento> 2000 caracteres de longitud como parámetro.Cómo comprimir GET Parámetros en Javascript para evitar golpear el límite de tamaño del navegador?

Por diversas razones, no puede cambiarlo desde JSONP a una petición normal y que no pueden mantener el estado del lado del servidor para dividir la solicitud en varias.

Teniendo en cuenta estas limitaciones, hay una manera de comprimir el texto de alguna manera larga en Javascript para que pueda encajar dentro del límite de tamaño GET 2000? También necesitaría saber si puedo descomprimirlo fácilmente en el servidor.

Debido a que es una petición GET sólo puede ser enviado como compresión de un texto de manera binaria no puede ser posible?

+0

¿Cuál es el documento que está intentando enviar? ¿Puedes codificar partes? – Deebster

+3

¿No puede pasar a usar 'POST' y proxy a su servidor local para realizar la solicitud entre dominios? ¿Qué sucede si su documento llega a ser tan largo que incluso su método de compresión lo deja> 2000 caracteres? – mellamokb

+0

si es texto, y no puede cambiar a POST. puedes probar un algoritmo huffman, obtiene una muy buena tasa de compresión – Jarry

Respuesta

2

interruptor para publicar datos en bruto y el uso de JSON o XML para guardar y enviar grandes estructuras a través de una solicitud.
Si utiliza jQuery por ejemplo, tiene

jQuery.post(url, [data], [callback], [type]) 

donde los datos podrían ser xmlDoc, jsonObj, html, texto, etc ...

en lugar de los datos que usted podría tener algo como:

$.post("path/to/my/file.php", { func: "yourFunctionName" }, 
    function(data_returned_from_backend_json){ 
    //use data_returned_from_backend_json.properties 
    } 
, "json"); 

function yourFunctionName() 
{ 
    //save all GET params into a json structure 
} 

fuente: http://docs.jquery.com/Post

+0

Ya he mencionado que no puedo cambiar a POST. Es una llamada de dominio cruzado. –

Cuestiones relacionadas