0

どうやってこの質問をするのかよくわかりませんでした。ごめんなさい。でも基本的にはこれです。

私はAjaxで始めたばかりですが、バックグラウンドでXMLhttpRequestを送信すると、フォームデータにいくつかのhtml特殊文字、特に変数を途中で終了する&記号で問題が発生します。

例えば。値「You&I」の結果は「You」になります

この質問を私の観点から説明します。これは単純です。GETメソッドを使用して通常のフォームを送信すると、変数がURLエンコードされているため、同じことが起こります。ただし、フォームをPOSTメソッドに設定すると、必要に応じてすべてが保存されます。

今、私はそれがこれと何か関係があると信じています(?)

hr.open("POST", link, true);
hr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

特にフォームurlencoded部分で..代替手段はありますか?

Ajaxを介して渡す各変数に対してクリーンアップルーチンを実行する必要はありません:(

4

1 に答える 1

1

変数を途中で終了する&記号

&x-www-form-urlencodedデータの値を終了することになっています。URLを作成するときは、データをエンコードする必要があります。

GETメソッドを使用して通常のフォームを送信すると、同じことが起こります。変数はURLエンコードされているためです。

いいえ。GETを使用して通常のフォームを送信すると、入力されたデータはURLエンコードされ、データとして表示されるアンパサンド文字は%26生の&文字ではなくで表されるため、同じことが起こりません。

[application / x-www-form-urlencoded]に代わるものはありますか?

任意のデータ形式を使用できます。他のものよりも生成が簡単なものもあります(JSONはブラウザーからの生成が特に簡単です)。次に、サーバー上でそれらをデコードするという課題があります(フォーム処理ライブラリはJSONを実行する傾向がないため、生のPOSTデータを取得して自分でデコードする必要があります)。

実際の問題はデータをエンコードすることで解決されるため、これは不要です。

于 2013-01-12T08:46:01.917 に答える