2017-05-19 7 views
0

jQueryMobile에서 서버가 HTTP 302에 응답 할 때로드하는 아약스 페이지를 비활성화하는 방법이 있습니까?jQueryMobile에서 HTTP 302에 ajax 사용 안 함

이 페이지에는 (그리고이 페이지에서만) 특정 자바 스크립트 라이브러리가있는 로그인 페이지 (mydomain.tld/login)가 있습니다. 사용자가 로그인하고 세션이 만료되면 새로운 내용 (mydomain.tld/mycontent ->mydomain.tld/login)에 액세스하려고 할 때 Silex 프레임 워크가 로그인 페이지로 리디렉션됩니다. 표준.

문제점 : jQueryMobile이이 페이지를 ajax로로드하려고 시도했기 때문에 로그인 페이지 로딩이 실패하여 로그인 페이지의 특정 JS 라이브러리가로드되지 않으므로 (jQueryMobile은 DOM에 페이지 내용 만 삽입) 로그인 페이지가 실패했습니다. 이 라이브러리없이 초기화하십시오 ...

효율성상의 이유로이 특정 라이브러리를로드하는 데 wan't하지 않습니다 (이 라이브러리는 로그인시 유용하며 모든 나머지 사이트에서는 유용하지 않습니다).

정말 모든 사이트에 대한 페이지의 아약스로드를 해제하고 싶지 않아 ...

는 아약스 로딩을 해제하는 방법이 있나요 경우에만 서버 응답 특정 페이지에 대한 HTTP 302 또는 비활성화 아약스 (mobileinit에서 PARAM?) 여러분의 아이디어와 제안을 사전에

감사합니다 ...

+0

당신이 [을 강제 할 수 없음을 로그인 라이브러리와 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')); 
    } 
});