質問

ブラウザが応答を受信した後、WebページのDOMを変更する可能性があるものは何ですか?

この動作は、使い捨てフォームトークンを保持する非表示の入力要素の値に見られます。

ブラウザで「ソースを表示」すると、サーバーによって書き出された正しい値が表示されます。フォームを送信したり、DOMの現在の状態を表示したり、要素をテキスト入力に変更したりすると、別の文字列が表示されます。そのため、サーバーにポストバックするときに入力が保持する値は、サーバーが最初に送信した値とは異なります。

javascriptを無効にしても問題は解決しません。読み取り専用属性を要素に追加しても解決しませんでした。

新しい情報: 私はこれをさらにいじってみましたが、信じられないかもしれませんが、Firefoxで画像をオフにするとこの問題はなくなります。

一体なぜこれが起こるのですか?

役に立ちましたか?

解決 3

私は、何が起こっているのかについての解釈が正しくありませんでした。それは良いことだと思います。私が見ていたと思ったことは決して起こらないからです!とにかく、私が今理解している状況は次のとおりです。

ここでのフォームトークンは1回限りの使用であるため、1回のページ読み込みに対してのみ有効です。ページ上のどこか他の場所に、src属性のないimgタグがありました。これにより、ブラウザは/から画像を読み込もうとしました。インデックスページはphpページであるため、トークンは循環します。

「ソースの表示」の実装(複数のブラウザでテストしていた)がページの再読み込みを引き起こすように思われたため、DOMが変更されたと思います...

すべての提案に感謝します。

他のヒント

ブラウザに<!> quot;フォームデータを保存<!> quot;機能、以前に送信された値をデータに事前設定することは可能です。

(人気のあるブラウザは隠しフィールドに値を入力しないほどスマートであると期待しますが、それは私が提案できるこのソースの1つです...)

フィールドタグに readonly = <!> quot; readonly <!> quot; autocomplete = <!> quot; off <!> quot ;

ブラウザのオートコンプリートがそれを行うかどうかはわかりませんが、もっともらしいので、テスト中のブラウザでオートコンプリートを無効にして、それが何かを変更するかどうかを確認することもできます。

<!> quot;フォームの送信時に、DOM <!> quot; の現在の状態を表示するとどういう意味ですか?

フォームを送信すると、サーバーにリクエストが送信されますか?サーバーから返された結果ページのDOMの状態について話しているのですか?

クライアント側のスクリプトを使用せずに、クライアント側でDOMを変更することは実際には不可能です。

一方、サーバーに送信してまったく新しいDOMを取得した場合、サーバーはそれを変更しました。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top