2012-06-04 24 views
11

オフライン機能を提供するためにキャッシュマニフェストを使用するHTML5アプリケーションがあります。このアプリケーションはオンラインでajaxコールを作成し、このコールの中には403回の応答で無許可を取得するものがあります。HTML5キャッシュマニフェスト:フォールバックの取得に失敗したAjax呼び出し

ここに私のcache.manifestファイルの一番下だ:私は代替セクション、予想通り403応答の仕事を受けたすべてのAjaxの呼び出しを削除し、私はjQueryのエラーハンドラでこれを検出し、リダイレクトすることができた場合

NETWORK: 
* 

FALLBACK: 
//offline 

ユーザーをログインフォームに追加します。

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

ここに何か不足していますか?事前に感謝します

+0

あなたが意味しますかユーザーがオンラインでファイルが実際に存在しない場合でもフォールバックは実行されますか? – Ekim

+0

はい、オンラインワイルドカードフラグ( '*')は、フォールバックで入力したものを上書きすることを期待しています。しかし、それは[仕様書](http://www.w3.org/TR/2011/WD-html5-20110525/offline.html#parsing-cache-manifests)に沿って、他の方法で動作します。 –

答えて

0

が失敗と解釈され、エラーが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' 
}); 
関連する問題