2012-06-04 2 views
1

나는 html로 표시하고있는 텍스트를 htmlencode로 필터링했습니다.htmlencode가 lockup asp.net을 발생시킵니다.

컨트롤을 텍스트 상자로 변경하면 htmlencode 코드 만 남겨두고 대부분 효과가있었습니다. 그러나 국제 문자가있는 경우 (예 : éúáó, 페이지에서 아약스 호출이 작동하지 않습니다. 페이지가 실제로 제대로 표시되고 오류가 없었습니다 - 자바 스크립트 또는 그렇지 않으면 페이지가 실제로 작동을 멈췄습니다.

htmlencode가 제거되었으므로 모든 것이 올바르게 작동합니다. 앱은 utf-8로 정의됩니다.

아무도 무슨 일이 있었는지 알면 궁금합니다.

+0

맞춤형 아약스 전화를 걸었습니까? 아마도 일부 문자가 URL 게시물을 손상시킬 수 있으므로 아마 아약스 게시물을 인코딩해야합니다. – Aristos

답변

1

내 생각에 Ajax 호출은 HTTP GET 메서드를 사용하고 URL 인코딩 대신 HTML 인코딩을 사용하고 있었다고 생각합니다. 따라서 Ajax 호출로 생성 된 URL에는 악센트 부호가있는 문자가 포함되어있을 때 (é의 HTML 인코딩)과 같은 문자가 포함되어 있었지만 요청을 서버 측 컨트롤러로 전송하지 못하게 만든 URL 스키마가 손상되었습니다. é의 URL 인코딩은 실제로는 %E9입니다. URL 인코딩과 HTML 인코딩은 다릅니다.

HtmlEncode 통화를 삭제하면 & URL 스키마가 깨져서 문제가 해결 된 것으로 보입니다. 지금까지 올바르다면 HTTP GET 대신 HTTP POST를 사용하도록 Ajax 호출을 변경하여 다른 URL 문제를 제거하는 것이 좋습니다.

+0

글쎄요, 당신 이론이 맞는지는 모르겠지만 그럴듯 해 보입니다. – mson

관련 문제