11

キャッシュマニフェストを使用してオフライン機能を提供するHTML5アプリケーションがあります。このアプリケーションは、オンラインのときにajax呼び出しを行い、この呼び出しの一部は、応答として403を無許可で取得する可能性があります。

これが私のcache.manifestファイルの下部です:

NETWORK:
*

FALLBACK:
/ /offline

フォールバックセクションを削除すると、403応答を受信するすべてのajax呼び出しが期待どおりに機能し、jQueryエラーハンドラーでこれを検出して、ユーザーをログインフォームにリダイレクトできます。

ただし、フォールバックセクションが存在する場合、サーバーが403で応答したとしても、フォールバックHTMLのコンテンツを本文として、同じ呼び出しで200 OK応答が返されるため、ユーザーが認証されておらず、に送信する必要があることを知る方法はありません。ログインページ。

ここで何かが足りませんか?前もって感謝します

4

2 に答える 2

2

jQuery-AJAX を探しているページにクエリパラメーターとして乱数を追加すると、問題が解決します。すなわち

$.ajax({
  url: "/data.html?"+ Math.random(),
  // other properties here...
});
于 2012-09-07T07:35:46.510 に答える
0

http://alistapart.com/article/application-cache-is-a-douchebag#latestから

以下は、ステータス コードが 0 として報告され、失敗として解釈されるためにエラーが発生する可能性があることを示しています。

$.ajax( url ).always( function(response) {
 // Exit if this request was deliberately aborted
 if (response.statusText === 'abort') { return; } // Does this smell like an error?
 if (response.responseText !== undefined) {
  if (response.responseText && response.status < 400) {
   // Not a real error, recover the content    resp
  }
  else {
   // This is a proper error, deal with it
   return;
  }
 } // do something with 'response'
});
于 2014-03-10T18:16:43.097 に答える