2014-03-14 1 views
0

내가 삼항 응답을 양식 제출을 받아 생산하는 웹 서비스를 리디렉션 서비스 및 웹 사이트 콘텐츠는 2 개의 별개의 응용 프로그램이며 분리되어 있습니다.나타내는 성공/실패는

웹 서비스는 중 3 개 주에서 클라이언트에 표시되어야 구체적인 내용에 대한 지식이 없기 때문에, 대신에 숨겨진 폼 필드로 클라이언트가 제공 한 URL로 리디렉션에 의존해야합니다

<form action="http://localhost:8001/submissions" method="POST"> 
    <input type="text" name="email" /> 
    <input type="hidden" name="success" value="file:///thankyou.html" /> 
    <input type="hidden" name="client_error" value="file:///client_error.html" /> 
    <input type="hidden" name="server_error" value="file:///server_error.html" /> 
    <input type="submit" value="Submit" /> 
</form> 

응용 프로그램은 현재 30* 응답 코드로 작동합니다 (즉, 브라우저가 적절히 리디렉션 됨). 내 REST 모자 그러나

,, 그것은 40*50*에보다 의미있는 응답을 반환하고, 여전히 브라우저 리디렉션 가질 수 있습니다?

클라이언트 측에 비동기 기능을 추가하기를 원하기 때문에 터널링과 같은 냄새가있는 제공된 경로에 대해 리디렉션 위치를 확인하는 대신 요청 결과를 확인하는 것이 특히 유용합니다.

+0

응답에 _one_ HTTP 상태 코드 만 포함 할 수 있습니다. REST는 브라우저에서 _direct_ 요청과 어떤 관련이 있습니까? API 호출을하거나, 주소 표시 줄을 통해 직접 자원을 요청하여 브라우저에 표시하십시오. 동시에 둘 다 나에게 거의 이해가되지 않습니다. (브라우저가 API와 직접 대화해야하는 이유는 알 수 없습니다.) – CBroe

+0

그리고 서비스가 처음부터 _redirect_해야하는 이유를 알 수 없습니다. 서비스 범위 내에 오류가있는 경우 서비스는 직접 IMHO (오류 코드/상태 코드 및 첨부 된 응답 본문의 오류 메시지)로 응답해야합니다. 나는 여기에 리다이렉트를하는 것에는별로 의미가 없다. – CBroe

답변

0

표준 HTTP POST/HTML 양식을 제출하고 있습니다.이 REST 호출을 호출하지 않을 것입니다.

HTTP 프로토콜에는 사전 정의 된 Response Codes이 있습니다. http 클라이언트 (브라우저)가 리디렉션을 따르게하려면 표준 HTTP 리디렉션 상태 코드, 즉 302 Found과 같은 30x 상태 코드를 사용해야합니다.

+0

나는 이것이 REST 호출이라고 주장 할 것이다. 주제는 생각보다 넓을 것이다. 핵심에서 REST는 HTTP (즉, 적절한 상태 코드, 메서드의 예측 가능한 동작 등)에 중점을두고 보완적인 RFC 및 W3C 표준을 준수하기위한 옹호자입니다. –

+0

독립 여부 REST 호출로 간주 될 수도 있고 그렇지 않을 수도 있습니다. HTTP 클라이언트 (브라우저)에 대한 리디렉션은 http 상태 코드 30x가 반환 된 경우에만 작동합니다. – andih

+0

설명해 주셔서 감사합니다 :) 나는 30x –