1

jquery.ajax を使用してリッチ テキスト エリアを保存します。

corr=some.innerHTML(); /* corr='< some text <' */
$.ajax({
    type:"POST", url:"flatplan/save_corr.php",
    data:"corr="+corr+"&IDFS="+IDFILES,
    success: function(msg){

    },
    error:function(x,e){
        ajax_errors(x,e);
    }
});

問題は、corr 変数に「&」文字が含まれている可能性があり、より多くのパラメーターを送信して問題が発生することです。ajax htmlテキストで投稿する方法はありますか?

4

3 に答える 3

5

を使用して、クエリ文字列コンポーネントencodeURIComponentエスケープできます (エスケープする必要があります) 。

data: "corr=" + encodeURIComponent(corr) + "&IDFS=" + encodeURIComponent(IDFILES),

編集: jQuery は、データ フィールドでオブジェクトを受け入れることができます。あなたはただ使うべきです

data: ({
  corr: corr,
  IDFS: IDFILES
}),

jQuery がクエリ文字列を自動的にエンコードできるようにします。

于 2010-07-29T14:54:06.690 に答える
1

corr 値に を含めることはできません&。その場合は、その値を urlencode する必要があります。これを行うには、escape()メソッドを使用します。

var corr = escape(some.innerHTML()); //(corr='< some text <')
$.ajax({
    type:"POST", 
    url:"flatplan/save_corr.php",
    data:"corr="+corr+"&IDFS="+IDFILES,
    success: function(msg){
        //success handler
    },
    error:function(x,e){
        ajax_errors(x,e);
    }
});
于 2010-07-29T14:55:35.180 に答える
0

私は個人的にすべてのhtmlをAJAX経由で投稿する前にエスケープし、phpファイルで結果をエスケープ解除するか、処理前にPHPで入力をサニティチェックします。私はこれに巻き込まれたことはありませんが、どこに問題があるかはわかります。

于 2010-07-29T14:55:29.480 に答える