2017-05-19 2 views
0

jQueryMobileでは、サーバがHTTP 302に応答したときに、Ajaxページの読み込みを無効にする方法はありますか?jQueryMobileでHTTP 302でajaxを無効にする

私はログインページ(mydomain.tld/login)と、このページ(およびこのページのみ)に特定のjavascriptライブラリを持っています。ユーザーがログインしてセッションが終了すると、ユーザーは新しいコンテンツ(mydomain.tld/mycontent - >mydomain.tld/login)にアクセスしようとすると、Silexフレームワークによってログインページにリダイレクトされます。正常。

問題:jQueryMobileがこのページをajaxでロードしようとするため、ログインページの特定のJSライブラリがロードされないため(jQueryMobileはDOMにページコンテンツのみを挿入するため)、ログインページは失敗しますこのライブラリを使用せずに初期化するには...

効率的な理由から、この特定のライブラリをすべてのページに読み込むことを躊躇しません(このライブラリは、ログイン時に役立ち、サイトの他の部分では役に立ちません)。

私は本当にすべてのサイトのページのAjaxのロードを無効にしたくない...

は、Ajaxのロードを無効にする方法がある場合にのみ、サーバーが応答する特定のページのHTTP 302または無効にAJAX (mobileinit中のparam?)

感謝あなたのアイデアや提案を事前に...

+0

あなたは[LOを強制することはできませんAJAXのログインライブラリの広告](https://api.jquery.com/jquery.getscript/)も参照してください。 – mTorres

+0

私は最終的に、すべてのページに軽量バージョンのライブラリを読み込むことを選択します。 – David

答えて

0

またはルートの前にあなたがリクエストを無効にすることができます

$app->before(function(Request $request, Application $app)) { 
    if ($request->isXmlHttpRequest() && $request->headers->get('User-Agent') == 'mobile header') { 
    return $app->json(array('error' => 'Authentication failed')); 
    } 
}); 
関連する問題