서버는 DataSanp REST Application 으로 구성하였으며 클라이언트는 TMS Web Application을 구성하였습니다.
로그인 페이지까지는 잘 호출이 되는데 메인 페이지로 호출이 안되어 이렇게 문의 드립니다.
내용은 아래와 같습니다.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 서버는 DataSnap REST Application 으로 구성, TWebModule 을 사용
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//-- 서버-1 : url root 접근시 로그인 페이지 호출
if (Request.InternalPathInfo = '') or (Request.InternalPathInfo = '/') then begin
Response.SendRedirect('http://localhost:8080/test/login.html'); ---> 정상적으로 클라이언트 브라우져에서 로그인 페이지 이동
end
//-- 서버-2 : 로그인 페이지에서 "로그인" 버튼 클릭시 권한이 있는 유저인지 판단
if (Request.InternalPathInfo = '/test/login') then begin
//-- 클라이언트 화면에서 유저 확인 파라미터 전달
pno := Request.QueryFields.Values['No'];
pid := Request.QueryFields.Values['ID'];
ppw := Request.QueryFields.Values['PW'];
//-- 데이터베이스 검색함수 fn_response_user 호출, String 으로 응답
Response.Content := fn_response_user(pno, pid, ppw); ---> 정상적으로 클라이언트 브라우져에 유저정보 전달
end;
//-- 서버-3 : 클라이언트 로그인 페이지에서 "로그인" 버튼 클릭시 메인 페이지 호출
if (Request.InternalPathInfo = '/test/main') then begin
Response.SendRedirect('http://localhost:8080/test/main.html'); ---> http request error 발생 클라이언트 브라우져에서 메인 페이지 이동 안됨
end;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 클라이언트는 TMS TWeb Application 으로 구성, TWebHttpRequest 컴포넌트 사용
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//-- 클라이언트 : "로그인" 버튼 클릭시
prRequest_user; ---> 서버-2 로 파라미터 전달하고 호출
prRequest_main; ---> 서버-3 으로 메인 페이지 이동 호출
//-- 호출 예-1)
HttpRequest.Command := httpPOST;
HttpRequest.ResponseType := rtText;
HttpRequest.URL := 'http://localhost:8080/test/main';
HttpRequest.Execute(
procedure(AResponse: String; ARequest: TJSXMLHttpRequest)
begin
if (ARequest.readyState = 4) or (ARequest.Status = 200) then begin
if (AResponse <> '') and (AResponse <> 'NO-DATA' then begin
//--
end;
end;
end
);
질문
이병언
고수님들의 도움을 구하고자 합니다.
델파이로 c/s만 개발하다가 웹 접근은 처음이라 시행착오를 많이 거치고 있습니다.
서버는 DataSanp REST Application 으로 구성하였으며 클라이언트는 TMS Web Application을 구성하였습니다.
로그인 페이지까지는 잘 호출이 되는데 메인 페이지로 호출이 안되어 이렇게 문의 드립니다.
내용은 아래와 같습니다.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 서버는 DataSnap REST Application 으로 구성, TWebModule 을 사용
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//-- 서버-1 : url root 접근시 로그인 페이지 호출
if (Request.InternalPathInfo = '') or (Request.InternalPathInfo = '/') then begin
Response.SendRedirect('http://localhost:8080/test/login.html'); ---> 정상적으로 클라이언트 브라우져에서 로그인 페이지 이동
end
//-- 서버-2 : 로그인 페이지에서 "로그인" 버튼 클릭시 권한이 있는 유저인지 판단
if (Request.InternalPathInfo = '/test/login') then begin
//-- 클라이언트 화면에서 유저 확인 파라미터 전달
pno := Request.QueryFields.Values['No'];
pid := Request.QueryFields.Values['ID'];
ppw := Request.QueryFields.Values['PW'];
//-- 데이터베이스 검색함수 fn_response_user 호출, String 으로 응답
Response.Content := fn_response_user(pno, pid, ppw); ---> 정상적으로 클라이언트 브라우져에 유저정보 전달
end;
//-- 서버-3 : 클라이언트 로그인 페이지에서 "로그인" 버튼 클릭시 메인 페이지 호출
if (Request.InternalPathInfo = '/test/main') then begin
Response.SendRedirect('http://localhost:8080/test/main.html'); ---> http request error 발생 클라이언트 브라우져에서 메인 페이지 이동 안됨
end;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 클라이언트는 TMS TWeb Application 으로 구성, TWebHttpRequest 컴포넌트 사용
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//-- 클라이언트 : "로그인" 버튼 클릭시
prRequest_user; ---> 서버-2 로 파라미터 전달하고 호출
prRequest_main; ---> 서버-3 으로 메인 페이지 이동 호출
//-- 호출 예-1)
HttpRequest.Command := httpPOST;
HttpRequest.ResponseType := rtText;
HttpRequest.URL := 'http://localhost:8080/test/main';
HttpRequest.Execute(
procedure(AResponse: String; ARequest: TJSXMLHttpRequest)
begin
if (ARequest.readyState = 4) or (ARequest.Status = 200) then begin
if (AResponse <> '') and (AResponse <> 'NO-DATA' then begin
//--
end;
end;
end
);
//-- 호출 예-2)
HttpRequest.Command := httpPOST;
HttpRequest.ResponseType := rtText;
HttpRequest.URL := 'http://localhost:8080/test/main';
HttpRequest.Execute;
로그인 페이지는 정상적으로 Redirect가 정상적으로 먹히는데 메인 페이지는 안되는 이유를 모르겠습니다.
이 댓글 링크
다른 사이트에 공유하기
1 answer to this question
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.