0

Prototype を使用してForm.serialize()複雑なフォームを送信するとき、どういうわけか、これがすべての場合に機能するかどうかについて、私はいつも少し確信が持てません。

私が心配している可能性のある問題は、引用符/文字列のエスケープの問題、またはおそらく異常な文字コードの送信など、プロセスを台無しにする可能性のあるものです。

質問は次のとおりです。

Prototype を使用してフォームからすべてのデータを収集し、それを AJAX 経由でサーバーに送信することは (クライアント側で) 安全ですか? または、この方法でフォームを送信する際に問題があることが知られているブラウザーはありますか? または、おそらくサポートの欠如それのための?

4

2 に答える 2

1

私が知っているブラウザで内部的に Javascript を使用してフォームを送信することはありませんが、フォームを送信する方法の正確な詳細は非常によく文書化されています。

プロトコルに正確に従うフォーム送信コードを Javascript で書くことはかなり可能です。一方、経験豊富なコーダーは、無効化されたチェックボックス コントロールなど、いくつかの特殊なケースを見逃す可能性があります。

ライブラリを使ったことがないので何とも言えprototypeませんが、フォームが正しく送信されない場合や、サーバーが送信されたフォームを受け付けない場合は、バグ レポートとして送信する必要があります。

于 2012-10-09T20:52:56.070 に答える
1

なぜ最初に反対票を投じられたのかわかりませんが、それは有効な質問です。

ただし、本当の答えは、セキュリティの側面は実際にはバックエンドで発生するということだと思います。フォーム全体をシリアル化してリクエストを通じて送信することは問題ありませんが、反対側で受信した情報を検証する必要があります。

たとえば、これ(または別の言語で同等のこと)を行いたくない場合:($formシリアル化された形式であると仮定します)

foreach ($form as $key => $value) {
  $object->$key = $value;
}

save($object);
于 2012-10-09T20:53:09.230 に答える