1

Tomcat 5.5.27および5.5.26で実行されているサーブレットがあり、POSTメソッドを使用したWebフォームがあります。Safari 3.2.1を使用している場合、ログから、TomcatがPOSTを受信し、すぐに/同時にGETが続き、失敗することがわかります。Firefox 3.0.5を使用すると、POSTのみが送信され、すべてが機能することがわかります。

Eclipseでデバッグしようとすると、Safariを使用しているときに呼び出されるのはdoGet()メソッドであり、Firefoxを使用しているときに呼び出されるのはdoPost()であることがわかります。

実際には、SafariはPOSTとすぐにGETの両方を起動しますが、FirefoxはPOSTのみを起動するようです(HTMLフォームによると)。

これを経験した人は他にいますか?この場合、解決策はありますか?

HTMLフォームのスニペットは次のとおりです。

<form action="/vidisearch/Search" method="post" name="SearchForm" id="SearchForm">
    <div class="input required">
    <label for="Concepts">Concepts, comma separated<br />
    ex. (remove quotes) &quot;man-made object, cemetery, graphic event, atmospheric event, tool event&quot;</label>
    <input name="concepts" type="text" value="" id="concepts" />
    </div>

    <div class="input required">
    <label for="Operators">Operators, comma separated<br />
    ex. (remove quotes) &quot;NOT, AND, OR, AND, AND&quot;</label>
    <input type="text" name="operators" value="" id="operators" />
    </div>

    <div class="input required">
    <label for="Specializations">Specializations, comma separated<br />
    ex. (remove quotes) &quot;true, false, false, true, false&quot;</label>
    <input type="text" name="specializations" value="" id="specializations" />
    </div>

    <div class="input required">
    <label for="Results">Various parameters</label>
    <table width="100%" border="0" style="border: 0;">
    <tr>
    <td>Ontology ID<br />
    <input name="ontologyID" type="text" id="ontologyID" value="" /></td>
    <td>Result page<br />
    <input name="page" type="text" id="page" value="0" /></td>
    <td>Shots per page<br />
    <input name="shotsPerPage" type="text" id="shotsPerPage" value="20" /></td>
    <td>New search<br />
    <input name="newSearch" type="text" id="newSearch" value="true" /></td></tr>
    </table>
    </div>

    <div class="submit"><input type="submit" value="Search" /></div>
</form>
4

4 に答える 4

1

空の src を持つイメージ タグがあると思います。

于 2011-02-22T15:40:38.033 に答える
0

Safari が機能していたことを思い出して以来、私は Safari の動作に非常に戸惑っています。最新のアップグレードの 1 つが何かを壊したのではないかと心配しています。

HTTPScoopを使用すると、どうやら Safari が応答を受け取ると、POST に続いて GET を起動することがわかりました。ただし、2 つの応答の日付と時刻が POST と GET の両方で同じであるため、実際には両方の要求が同時に発生すると思います。

応答は RSS フィードで、HTTP/1.1 200 OK コードが含まれています。2 番目の GET は、POST の同じ要求 URL ( http://127.0.0.1:8180/vidisearch/Search ) を要求しますが、本文は 0 バイトです。もちろん GET パラメーターはなく、欠落しているため答えは間違っています。パラメーター。

代わりに、Firefox は POST のみを起動し、正しい回答を取得します。

于 2008-12-29T23:08:35.643 に答える
0

フォームの HTML を見ずに言うのは難しいですが、おそらく送信ボタンはリンクでラップされており、Safari はフォームPOST し、リンクを (GET 経由で) たどっています。

于 2008-12-29T18:35:02.873 に答える
0

何が起こっているのかわかりませんが、私が知っていることは、より多くの情報を提供する必要があるということです.

関連するリソース (画像など) に対して GET を送信しているのに対し、Firefox はそれらをキャッシュに保持している場合や、たとえば <a> タグ内にフォーム送信ボタンがある場合などです。

もう 1 つの選択肢は、Javascript を介して何かを送信する場合に備えて、Javascript の非互換性です。

トラフィックをスニッフィングし ( FiddlerまたはWiresharkをチェックしてください)、Safari が GET しようとしているものと POST しているものを確認します。

于 2008-12-29T18:35:10.203 に答える