HTTPHandler에서 이 .ashx 파일을 게시하는 페이지로 문자열을 반환하는 가장 좋은 방법
-
05-07-2019 - |
문제
FORM이 다음과 같은 ColdFusion 웹 페이지에서 게시되는 ASP.Net HTTPHandler가 있습니다.
<form name="sendToHandler" action="http://johnxp/FileServiceDemo2005/UploadHandler.ashx" method="post">
<input type="hidden" name="b64fileName" value="fileservice.asmx.xml" />
<input type="hidden" name="strDocument" value="Document" />
<input type="submit" name="submitbtn" value="Submit" />
이 .Net 처리기가 ColdFusion 게시 페이지에 문자열을 반환하는 가장 좋은 방법은 무엇입니까?
2009년 8월 14일 업데이트 수정:
.ashx 파일에서 생각해낸 해결책은 내 핸들러를 게시한 .cfm 파일의 URL을 저장하고 ColdFusion에 다시 전달하려는 결과 문자열과 함께 쿼리 문자열을 추가하는 것입니다.내 CF 동료는 이 쿼리 문자열 데이터의 유무를 사용하여 그에 따라 .cfm 웹 페이지의 형식을 지정합니다.
public void ProcessRequest(HttpContext context)
{
string returnURL = context.Request.ServerVariables["HTTP_REFERER"]; // posting CFM page
string message = UploadFile(context); // handles all the work of uploading a file
StringBuilder msgReturn = new StringBuilder(returnURL);
msgReturn.Append("?n=");
msgReturn.Append(HttpUtility.UrlEncode(TRIMrecNumAssigned));
msgReturn.Append("&m="); // this is just a msg with performance data about the upload operation (elapsed time, size of file, etc.)
msgReturn.Append(HttpUtility.UrlEncode(message));
context.Response.Redirect(msgReturn.ToString());
}
해결책
ProcessRequest 메소드에서 문자열을 응답 객체에 직접 쓰십시오.
public void ProcessRequest(System.Web.HttpContext context)
{
context.Response.Write(mystring);
}
다른 팁
HTTP 핸들러에서 JSON을 생성하고 사용 할 수 있습니다. jquery.post
양식 데이터를 제출하고 냉담 페이지에서 결과를 얻으려면.
ColdFusion에서 반환되는 내용을 알고 싶다면 실제로 두 가지 방법이 있습니다.
첫 번째는 문자열을 양식(womp에서 제안한 대로)으로 반환한 다음 보조 양식을 제출하거나 다른 방법을 통해 브라우저에서 처리하는 것입니다.양식의 모든 값이 사용자가 제공하는 대신 제공되는 것처럼 보이므로 이는 제가 수행할 작업이 아닙니다.
두 번째 방법은 CF가 양식 게시 자체를 처리하는 것입니다.양식에서 전달되는 값을 CF에서 사용할 수 있다고 가정하면 CFHTTP를 사용하여 양식 게시물을 "가짜"로 만들 수 있습니다.CF는 결과를 직접 반환하고 거기에서 응답을 처리할 수 있습니다.