4

これが既存のバグかどうかはわかりませんが、私が取り組んでいる Web アプリケーションをデバッグした後、Safari 5 で奇妙な動作を発見しました。シナリオは次のとおりです。

ページ A ---- HTTP POST ----> ページ B ---- HTTP POST ----> ページ C

ページ A:

<body onload="document.forms[0].submit()">
        <form method="post" action="pageB.php">
                <input type="hidden" name="display" value="ABC" />
        </form>
</body>

ページ B:

<body onload="document.forms[0].submit()">
        <form method="post" action="pageC.php">
                <input type="hidden" name="display" value="123" />
                <input type="hidden" name="extra" value="XXX" />
        </form>
</body>

ページ C:

<body>
<?php

        print_r($_REQUEST);
?>
</body>

これまでにテストしたすべてのブラウザーのうち、Safari 5 (Mac バージョン) のみが name="display" の値 "ABC" を表示し、フィールド "extra" の値 "XXX" をまだ確認できます。他のすべてのブラウザー (Safari 3、4 を含む) は、正しい値である値「123」を表示します。

何らかの理由で、ページ A とページ B を使用してフォームを送信する必要があります。この状態で、Safari 5 の回避策は何ですか? (ページ A からページ C に値を転送するような並べ替えではなく、ページ B で正しい値を送信するには、123 にする必要があります)

どうもありがとう!

  • Edit1: Mac OS (Snow Leopard、Lion) Safari 5 でのみ発生
  • Edit2:例をより明確にする
4

2 に答える 2

4

Safari は、自動入力動作を使用してフォーム フィールドに入力しています。環境設定で「その他のフォーム」オプションが有効になっている可能性があります。個人情報を盗むために使用される可能性があるため、Apple でさえこの機能をオフにすることを推奨しています。

とにかくオンになっている人のためにこれを回避するには、試してください<form autocomplete="off">

于 2012-05-21T03:58:32.717 に答える
0

Fiddler http://www.fiddler2.com/のようなプロキシを起動し、投稿データがフォーム間を移動するのを確認します。この 1 台のマシンのこの 1 つのブラウザーでのみ発生する場合は、フォーム ポスト エラーよりもブラウザー キャッシュの可能性が高いようです。ページ B から開始するとどうなりますか? 最初にキャッシュをクリアするとどうなりますか?

于 2012-05-15T05:29:27.160 に答える