2013-10-15 3 views
-6

사용자 로그인을 클라이언트 또는 서버 측의 웹 사이트로 리디렉션하는 것이 더 나은지 알아 내기 위해 검색했습니다. 내 연구에서 나는 그것이 서버 측에 의지하는 것이 더 낫다는 것을 안다.JS 대신 PHP를 사용하여 사용자를 리디렉션하는 방법

Jquery를 사용하여 사용자 로그인 정보를 확인하기 위해 PHP 스크립트에 데이터를 게시하는 JS 스크립트가 있습니다. 찾으면 JS가 리디렉션하도록 알려줍니다. 이것은 괜찮 았지만 지금은 PHP 스크립트를 사용하여 리디렉션하고 싶지만 스크립트는 i $ .post() 메소드를 사용하면 리디렉션되지 않습니다.

그래서 질문은 어떻게 사용합니까? 이 시스템을 구축하려고 노력하고 있습니다. JS가 브라우저에서 켜져있는 사용자에게 독립적이므로 도움이나 팁을 매우 환영 할 것입니다.

감사합니다.

+0

$ .post 백그라운드에서 요청을, 그래서 대답은 스크립트 "에서"도착 - 그래서 당신이 표시되는 페이지의 서버 측 리디렉션을 수행 할 수 없습니다 브라우저에서 그런 식으로. 어쨌든 솔루션 X가 Y보다 "더 나은"경우 여러 요소에 따라 결정됩니다. 서버 측 리다이렉트가 실제로 결정을 기반으로하는 기준을 실제로 갖추지 않고도 더 좋을 것이라고 "읽는 것"을하는 것은 매우 터무니 없습니다. – CBroe

+0

원하는 위치로 리디렉션합니다. 일반적으로 PHP는 리다이렉션을 수행하지만, PHP 로그인 – Svetoslav

답변

4

AJAX를 사용하고 있기 때문에 JavaScript 만 브라우저를 리디렉션 할 수 있습니다. 서버가 그렇게하려고하면 AJAX 요청 만 리디렉션합니다.

즉, "JS가 켜져있는 사용자와 독립적 이도록이 시스템을 구축하려고합니다"라는 귀하의 진술은 $.post()의 사용과 모순됩니다.

0

당신은 여기에서 "위치"헤더 (URL을 리디렉션)가 나타날 수 있습니다

jQuery - get AJAX response headers

success: function(res, status, xhr) { 
    alert(xhr.getResponseHeader("Location")); 
} 
+0

에서 성공을 수신 한 후 자바 스크립트 리디렉션을 사용할 수 있습니다. AJAX는 자동으로 리디렉션을 처리하여 최종 대상의 헤더를 반환합니다. –

+0

맞지만 PHP에서 헤더를 추가하고 플래그 (예 : ajax = 1)가있을 때 리디렉션하지 않을 수 있습니다. –

0

를 사용하여 표준 양식을 정식 방법에 자격 증명을 게시 할 수 있습니다. 자바 스크립트를 기본 인증 방법으로 사용하는 것은 전혀 인증을받지 않는 것과 같습니다.

이미 적절하게 해결하고 non-js 대체를 찾고 있다면 모두 non-js로 만드십시오. PHP 리디렉션은 매우 쉽지만 비동기 적으로 수행 할 수없는 헤더를 출력해야하므로 어쨌든 데이터를 게시해야합니다.

예 PHP 리디렉션

header ('HTTP/1.1 301 Moved Permanently'); 
header ('Location: '.$location); 
관련 문제