2012-04-26 3 views
6

Mi sono messo in una situazione in cui mi viene richiesto di effettuare una richiesta GET Ajax JSONP (dominio incrociato) e ho bisogno di inviare un documento> 2000 caratteri di lunghezza come parametro.Come comprimere i parametri GET in Javascript per evitare di raggiungere il limite di dimensioni del browser?

Per vari motivi, non riesco a passare da JSONP a una richiesta normale e non riesco a mantenere lo stato sul lato server per dividere la richiesta in più.

Data questa limitazione, c'è un modo per comprimere il testo lungo in qualche modo in Javascript in modo da poterlo inserire nella dimensione limite 2000 GET? Avrei anche bisogno di sapere se posso facilmente decomprimerlo sul lato server?

Poiché si tratta di una richiesta GET, può essere inviata solo come testo, quindi la compressione binaria potrebbe non essere possibile?

+0

Qual è il documento che si sta tentando di inviare? Puoi codificare le parti? – Deebster

+3

Non è possibile passare all'utilizzo di 'POST' e proxy al server locale per effettuare la richiesta tra domini diversi? Cosa succede se il tuo documento diventa così lungo che anche il tuo metodo di compressione lascia a> 2000 caratteri? – mellamokb

+0

se è testo e non puoi passare a POST. puoi provare un algoritmo di Huffman, ottiene un ottimo tasso di compressione – Jarry

risposta

2

Passare ai dati grezzi POST e utilizzare JSON o XML per salvare e inviare grandi strutture tramite una richiesta.
Se si utilizza JQuery per esempio avete

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

in cui i dati potrebbero essere xmlDoc, jsonObj, HTML, testo, ecc ...

al posto dei dati si potrebbe avere qualcosa di simile:

$.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 
} 

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

+0

Ho già detto che non posso passare al POST. È una chiamata interdominio. –

Problemi correlati