2009-09-22 5 views
0

Response.Redirect에 이상한 문제가 있습니다. VB.NET .NET 2 프레임 워크 (그래서 VS2005 & SP1) 사용하고 있습니다.잘못된 HTTPMethod를 보내는 response.redirect의 문제점

양식을 제출하는 페이지가 있습니다. 적절한 양식 방법 = "POST"가 페이지에 하드 코딩되어 있습니다. 제대로 처리 된 페이지 데이터를 다시 게시합니다. 이 처리의 일부로 시스템은 처리가 완료된 후 다른 URL로 보내야하는지 여부를 결정합니다. 따라서 request.httpmethod = "POST"입니다.

"GotoPage"매개 변수에 URL이 지정되어 있으면 response.redirect (URL, false)를 수행합니다. (일부 타이밍 로그를 작성하기 위해 페이지 처리가 완료되기를 원하는 것처럼 거짓).

페이지가 올바르게 리디렉션되지만 request.httpmethod에 "GET"이있는 응답 대신 "POST"가 대신 전송됩니다.

이제 우리는 HTTPRequest 메서드를 사용하여 페이지가 게시되었거나 "GetPage"되어 "IsPagePostBack"속성이 작동하지 않는지 확인하는 자체 사용자 지정 프레임 워크를 사용하고 있습니다 일반 .NET 컨트롤 및 양식 제출을 사용할 때). 다른 모든 경우에 우리 코드는 행복하게 작동하지만 Request.httpMethod가 올바르게 설정되지 않은 원인은 무엇입니까? 내가 헤더를 손에 전에 밖으로 쓸 수 있지만 아무 소용이 경우 리디렉션 전에 response.clear 일을 시도했다.

모든 단서?!

덕분에, 앤디

답변

0

어떻게 헤더를 제거하려고 한 다음 원하는 하나를 추가하는 방법에 대한? 나는 "GET"이 304라고 생각하니?

response.clearheaders 
response.appendheader("GET", 304) 
response.redirect(...) 

MSDN의 response.appendheader에 대한 링크.