2012-11-14 1 views
0

나는 .net에서 문서를 찾지 못했고 공식적인 것들은 절망적 인 미로입니다.HttpHandler는 파일을 보내기 전에 리디렉션 된 페이지에 작성합니다.

jQuery를 사용하는 사용자를 새 페이지에서 HttpHandler로 리디렉션합니다. 여기에서 html 테이블을 작성하여 전송하고 (Excel 파일이라고 부름) 즉시 사용합니다. 스태커 덕분에 지연없이 파일을 빌드하고 보낼 수 있습니다 (심지어 엄청난 것).

저는 새 페이지에서 사용자에게 파일을 작성하고 전송하는 중이라는 사실을 알려주고 싶습니다. 내 엑셀 헤더를 보내기 전에 context.response.write 않는 경우

, 내가 얻을 :

Server Error in '/' Application. 

Server cannot append header after HTTP headers have been sent.

내가 원하는 것을 달성하기 위해 어떤 방법이 있나요?

미리 감사드립니다.

+0

'Response.ClearHeaders()'를 (를) 호출 해 보았습니까? –

+0

이제 "서버는 HTTP 헤더를 보낸 후 헤더를 지울 수 없습니다."라고 말합니다. 노력해 주셔서 대단히 감사합니다! –

답변

0

필요한 것은 다운로드 페이지로 리디렉션되는 임시 방문 페이지입니다.

임시 페이지에서 메시지와 작은 스크립트를 사용하여 사용자를 다운로드하도록 보낼 수 있습니다.

<body> 
<div> Your file is getting created... Please wait patiently. 
</div> 
<script> 
    window.location.href = 'http://yoursite.com/documentpage/blah/foo/bar'; 
</script> 
</body> 
0

달성하려는 목표는 무엇입니까? 내가 아는 한 일종의 엑셀 시트를 만들어 클라이언트에게 보냅니다. 나는 클라이언트가 귀하의 컨텐츠를 엑셀 시트로 인식하기 위해 일부 응답 헤더 (예 : MIME 유형)를 보내려고합니다.

신체 앞에 항상 모든 종류의 헤더를 보내야하지만 사용자에게 표시되는 응답 스트림에 알림을 쓸 수는 없으므로 엑셀 파일.

그래서 나는 그것에 대한 알림과 자바 스크립트 또는 메타 리다이렉션 (또는 하이퍼 링크 또는 버튼)과 같은 새로운 랜딩 페이지가 있어야 엑셀 작성 및 다운로드를 수행해야한다고 생각합니다.

관련 문제