1

jquery の ajax リクエストを通じてテストを送信します。このテキストには、<、>、& を表す「<」、「>」、「&」などの特殊文字が含まれています。

$.ajax({
 type: "POST",
 url: "page.php",
 data: "content="+txt });

残念ながら弦がうまく伝わりません。冒頭のみが送信され、最初の特殊文字でカットされます。

たとえば、「blablabla<grogrogro」を送信すると、サーバーは「blablabla」のみを受信します。

どうすれば修正できますか?

PS: 特殊文字は実際には ";" で終わりますが、そうしないとうまく表示されないため、入れませんでした。

4

2 に答える 2

2

これは仕様によるものです。文字列を に渡すと、dataURL エンコードされたフォーム データ (クエリ文字列など) として扱われます。その形式で &は、新しいパラメーターの開始を示します。データ内のアンパサンドは URL エンコードする必要があります。

送信前にデータを URL エンコードする必要があります (PHP では、正しい関数は次のようになりますurlencode())。または、jQuery が自動的にエンコードする配列を渡す必要があります。

data: {"content": txt }
于 2011-11-30T22:08:43.140 に答える
2

& は、データ クエリ文字列内の別の変数を表します。したがって、次のように JavaScript オブジェクトを使用して送信する必要があります。

$.ajax({
    type: "POST",
    url: "page.php",
    data: {
        "content": txt
    }
});
于 2011-11-30T22:09:45.783 に答える