0

ここで奇妙なものを手に入れました、それは確かに私の頭を掻きます。

プログラム: iFrame/AJAXを介してスプレッドシートをサーバーにアップロードします。.JSP / APACHE POIは、データをXML形式で読み取り、検証し、返します。JavaScriptはXMLを読み取り、視覚的に確認できるようにテーブルに表示します。

問題: ユーザーがページを更新するまで、プログラムは完全に機能します。XMLは正しく返されません。フォーマットは維持されますが、データが欠落しています。別のファイルをアップロードしたり、再度更新したりしても何も変わりません。XML応答は同じままです。

XML:

<records>
    <groups>
        <group>
            <name>
                <cell>B9</cell>
                <value>Group Name</value>
                <error></error>
            </name>

            <...more data...>

        </group>
    </groups>

    <data>
        <groups>3</groups>
        <users>0</users>
        <errors>5</errors>
    </data>
</records>

それがどのように表示されるかですが、代わりに更新すると、戻り値は次のようになります。

<records>
    <groups />

    <data>
        <groups>3</groups>
        <users>0</users>
        <errors>5</errors>
    </data>
</records>

下の3つの数値(グループ、ユーザー、エラー)は、検証プロセス中にインクリメントされる.jsp変数です。つまり、値を取得するにはデータが必要です。ページが実行されるたびに、変数はデフォルトの0、空白などに設定されます。

私が見る限り、2つの可能性しかありません。

  • AJAXはキャッシュされたページを返します
  • .JSPは前のリクエストを記憶しています

しかし、私はキャッシュヘッダーなし、ファイル名の変更などを無駄に調べました。

その他の注意事項: iFrame / AJAXは、毎回ファイルをサーバーに正常にアップロードします。正しいファイル名が検証.jspページに渡されます。最初の実行は常に完全に機能します。

検証コードはかなり長いですが、本当に必要な場合はどこかに投稿することができます(ただし、コードは最初は完全に実行されるため、通信/キャッシュ関連の問題であると思います)。誰かが何か考えを持っているなら、私は聞いています。

4

1 に答える 1

0

私はそれで寝ました、そして私は今朝それを解決したようです。

何らかの理由で、.JSPファイルが呼び出されるたびに、ページを最初からリロードしてやり直すのではなく、以前とまったく同じプロセスが使用されます。理由はわかりませんが、知らないサーバーの設定かもしれません。

メインプロシージャ内の変数をデフォルトにリセットすることを繰り返しましたが、正常に機能しています。

于 2013-03-27T10:42:01.847 に答える