3
var desc = "www.google.com?i=12&j=34"
$.ajax({
            url: 'controller/function',
            type: 'POST',
            data: ({tDescription:desc}),
            beforeSend: function(){
                //Do Something
            },
            success: function(msg){
                //Do Something                
            }
        });

以下$_POSTのような内容が含まれています

tDescription: www.google.com?i=12
j:34

Totaldescをそのまま取得するにはどうすればよいですか

4

2 に答える 2

2

encodeURIComponentデータをエンコードするために使用します。

data: ({tDescription:encodeURIComponent(desc)}),

いつどれを使う?escape()
メソッド は、サーバー側でスペースとして解釈され、フィールドにスペースを含むフォームによって生成される + 文字をエンコードしません。この欠点と、この関数が非 ASCII 文字を正しく処理できないという事実のために、可能な限り escape() の使用を避ける必要があります。最良の代替手段は通常、encodeURIComponent() です。

escape()はエンコードしません: @*/+

encodeURI()メソッドの使用は、URL の一部であるクエリ文字列とは対照的に、URI [REF] をエンコードするという点で、escape() よりも少し専門的です。URI を使用するリソースに使用する文字列をエンコードする必要があり、特定の文字をエンコードしないままにしておく必要がある場合は、このメソッドを使用します。URI 内で有効な文字であるため、このメソッドは ' 文字をエンコードしないことに注意してください。

encodeURI()はエンコードしません: ~!@#$&*()=:/,;?+'

最後に、URI の 1 つのコンポーネントをエンコードする場合は、ほとんどの場合、 encodeURIComponent()メソッドを使用する必要があります。このメソッドは、多くのコンポーネントを含めることができるように、通常は URI の特殊な文字として認識される特定の文字をエンコードします。URI 内で有効な文字であるため、このメソッドは ' 文字をエンコードしないことに注意してください。

encodeURIComponent()はエンコードしません: ~!*()'

于 2012-10-15T06:30:43.490 に答える
0

serialize()あなたのコンテンツであり、宛先でそれを解析できます。

于 2012-10-15T08:11:14.387 に答える