2012-02-14 1 views
7

대상이 iframe 인 양식이 있습니다.인터넷 탐색기가 XML 응답을 가로 채기

양식을 제출할 때 응답은 XML이고 응답을 분석하는 Javascript가 있습니다.

IE에서 실행될 때 IE가 응답을 가로 채고 RSS 피드로 처리하므로 내 코드가 응답을 수신하지 못합니다. RSS 옵션 (인터넷 옵션, 내용 탭)을 사용하지 않으면 모든 것이 정상적으로 작동합니다.

응답의 내용 유형을 "text/xml; charset = UTF-8 "하지만 여전히 작동하지 않습니다.

해결 방법이 있습니까?

+1

IE에서 IE와 같은 이상한 점에 대해 읽는 것을 좋아합니다. – Oliver

답변

2

최상의 해결 방법은이 경우 iframe을 사용하지 않는 것입니다. 그것은 IE가 http 응답을 포착하고 독자적으로 그것을 읽는 것처럼 들립니다. 정보를 검색하기 위해 AJAX 호출을하지 않는 이유가 있습니까? 어쨌든 응답을 처리하기 위해 JavaScript를 사용하는 것 같아서 XMLHttpRequest 객체를 사용하는 것이 더 나을 것이라고 생각합니다. http://www.w3.org/TR/XMLHttpRequest/

너무 복잡하면 jQuery : http://jquery.com/과 같은 라이브러리를 살펴보십시오. AJAX 호출을 만들고 응답을 처리하기 위해 내장 된 (그리고 훨씬 간단한) 함수.

이 기능을 확장하려면 양식의 제출 기능을 JS 기능에 바인드하거나 jQuery를 사용하여 양식 데이터를 선택하고 AJAX 요청으로 보내고 응답을 처리한다. jQuery에는 페이지의 양식 데이터를 ajax() 함수에서 사용할 준비가 된 정보로 변환하여 서버에 전송하는 serialize() 함수가 내장되어 있습니다. XMLHttpRequest 객체에 익숙하지 않다면이 작업을 위해 jQuery와 같은 라이브러리를 사용하는 것이 좋습니다.

0

예, 또한 파일이 올바른 내용 - 처리하여 헤더 출력 확인, IE는 "response.xml"가 아니라 "response.php"또는 일부 등 ...

를 얻을 수 그렇게 '내용 - 처분 : 첨부; 파일 이름 = "response.xml" '

+0

실제로 첨부 파일 처리가 크롬에서 때때로 이상하게 작동하므로 사용자 에이전트 정보를 읽고 IE의 첨부 파일 만 확인하십시오. 다른 브라우저는 일반적으로 컨텐트 유형에 액세스하는 데 사용 된 URL과 상관없이 컨텐트 유형이 올바르게 설정된 경우 응답을 올바르게 처리합니다. – Brian

1

확인, 문제가 발생했습니다 ... 내 응답 XML에 FEEDBACK 태그가 포함되어 있습니다. IE는 이러한 태그를 RSS 피드로 취급합니다. 태그 이름을 FDBACK으로 변경하면이 문제가 해결됩니다 ...

MS, 이유는 무엇입니까?