2016-05-14 4 views
0

こんにちは私のGWTアプリケーションはPCブラウザで正常に動作していますが、RPC通信はモバイル/ iPadブラウザではランダムに失敗します。それは、モバイル/ iPadでの最初のRPC通信の成功のようですが、その後のRPC呼び出しは失敗します。私のサーバが何の例外も記録していないことを確認したとき。私はサーバーとしてTomcatを使用しており、静的リソースをサーバーにApache HTTPDを使用しています。もう一つの観察は、複数の画像がロードされているときに、私のiPadでRPC呼び出しが失敗することです。GWT RPCはサーバログで例外なくモバイルIEブラウザでランダムに失敗しますが、pcで動作します

私にこれを手伝ってください。

答えて

0

あなたは多くの情報を提供していませんが、これはiOS6、IIRCで導入されたキャッシュ動作のように聞こえます。

調べるには:

  1. は非稼働状態にアプリを実行します。
  2. ブラウザの設定でキャッシュをクリアします(iOSのシステム設定を介して)
  3. RPC呼び出しをもう一度試みます。

ステップ3で呼び出しが突然機能している場合は、RPCサーブレットのキャッシュヘッダーを明示的に設定する必要があります。これを行うには、ヘッダーを正しいパスに追加したリクエストフィルターを使用します。

私たちは、これが私たちのために問題を修正

Cache-control: no-cache 

を設定します。 GWT RPCはまだキャッシュに必要なPOSTメソッドを使用しています私の理解あたりとして

Is Safari on iOS 6 caching $.ajax results?

+0

にここにこんにちはを右キャッシュ設定についてさらに詳しくは、お返事ありがとうございましたか!もしそうなら、 "Cache-control:no-cache"をRPCサービスに設定する方法は? – Sivasankar

+0

iOSの問題は、Safariの一部のバージョンがPOSTリクエストをキャッシュしていることです。すでに述べたように、ヘッダーを追加するためにリクエストフィルターを追加しました。 – thst

+0

こんにちは、これは、Windowsの電話で問題を解決しましたが、まだ私のRPCはランダムに下に失敗しましたフィルタは、フィルタ設定を実装しています 今すぐ= System.currentTimeMillis(); HttpServletResponse httpResponse =(HttpServletResponse)response; httpResponse.setDateHeader( "Date"、now); httpResponse.setDateHeader( "Expires"、now - 86400000L); // 1日前 httpResponse.setHeader( "Pragma"、 "no-cache");httpResponse.setHeader( "キャッシュ制御"、 "no-cache、no-store、must-revalidate、max-age = 0、post-check = 0、pre-check = 0"); – Sivasankar

関連する問題