2012-04-26 11 views
6

JSONP Ajax GETリクエスト(クロスドメイン)が必要な状況に陥り、2000文字を超える長さのドキュメントをパラメータとして送信する必要があります。JavaScriptのGETパラメータを圧縮してブラウザのサイズ制限にぶつからないようにするにはどうすればよいですか?

さまざまな理由から、JSONPから通常の要求に変更することはできません。要求を複数に分割するためにサーバー側で状態を維持することはできません。

これらの制限がある場合、長いテキストを何とかJavascriptで圧縮する方法があるので、2000 GET制限サイズに収まるようにしますか?また、サーバー側で簡単に解凍できるかどうかを知る必要がありますか?

GETリクエストなので、バイナリ圧縮ができないように、テキストとしてのみ送信できます。

+0

あなたが送信しようとしているドキュメントとは何ですか?あなたは部品をエンコードできますか? – Deebster

+3

ドメイン間の要求を行うために 'POST'とローカルサーバーへのプロキシを使用することに切り替えることはできませんか?文書が非常に長くなって、圧縮メソッドでも> 2000文字のままになるとどうなりますか?テキストの場合は – mellamokb

+0

になり、POSTに切り替えることはできません。あなたは、ハフマンアルゴリズムを試すことができます、それは本当に良い圧縮率を得る – Jarry

答えて

2

POST生データに切り替えて、JSONまたはXMLを使用してリクエストを介して大きな構造を保存および送信します。
あなたが例えばjQueryのを使用する場合は、持っているデータはXMLDOC、jsonObj、HTML、テキスト、などかもしれない

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

...あなたのようなものかもしれない代わりにデータの


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

ソース:http://docs.jquery.com/Post

+0

私はすでに言及した私はPOSTに変更することはできません。それはクロスドメインコールです。 –

関連する問題