2017-05-19 9 views
0

Gibt es in jQueryMobile eine Möglichkeit, das Laden von ajax-Seiten zu deaktivieren, wenn der Server HTTP 302 antwortet?Deaktivieren von ajax auf HTTP 302 in jQueryMobile

Ich habe eine Login-Seite (mydomain.tld/login) mit bestimmten Javascript-Bibliothek auf dieser Seite (und nur auf dieser Seite). Wenn ein Benutzer angemeldet ist und die Sitzung abläuft, wird der Benutzer vom Silex-Framework auf die Anmeldeseite umgeleitet, wenn er versucht, auf neuen Inhalt zuzugreifen (mydomain.tld/mycontent ->mydomain.tld/login). Normal.

Problem: Das Laden der Anmeldeseite ist fehlgeschlagen, weil jQueryMobile versucht, diese Seite mit ajax zu laden, damit die spezifische JS-Bibliothek für die Anmeldeseite nicht geladen wird (jQueryMobile fügt nur Seiteninhalt in das DOM ein) und die Anmeldeseite schlägt fehl ohne diese Bibliothek zu initialisieren ...

Ich möchte diese spezielle Bibliothek aus Effizienzgründen nicht auf allen Seiten laden (diese Bibliothek ist nützlich beim Login, nutzlos auf dem Rest der Seite).

Ich weiß nicht wirklich will Ajax Laden der Seiten für die ganze Website deaktivieren ...

Gibt es eine Möglichkeit Ajax Laden deaktivieren nur, wenn der Server reagieren, um ein HTTP 302 oder deaktivieren Ajax für eine bestimmte Seite (param in mobileinit?)

Vielen Dank im Voraus für Ihre Ideen und Vorschläge ...

+0

können Sie nicht die Kraft [lo Anzeige der Login-Bibliothek mit AJAX] (https://api.jquery.com/jquery.getscript/) auch? – mTorres

+0

Ich entscheide mich endlich für das Laden einer leichten Version der Bibliothek auf allen Seiten. – David

Antwort

0

oder Sie können Anfrage vor der Route deaktivieren:

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