2012-11-05 2 views
0

IE (IE9에서는 테스트 중이지만 이전 버전에서도 같은 방식으로 동작합니다)에 문제가 있습니다.IE에서 <img /> 태그가있는 jQuery Ajax JSON 응답

내가 PHP에서 보내고있다 반응은 다음과 같다 :

{"success":true,"content":"<img src=\"\/media\/page\/1528484482.jpg\" width=\"140\" height=\"140\" alt=\"1528484482.jpg\" \/>"} 

은 파이어 폭스, 크롬, 사파리, 오페라 등 절대적으로 잘 작동 -하지만 IE에서 작동하지 않습니다. 응답이 빈 개체입니다.

나는에 대한 응답을 변경하면 잘 작동 다음 - 유일한 차이점은 IMG 태그의 끝 부분 앞에 슬래시입니다 : 그래서 '내용'응답을 구문 분석의 방법이 있나요

{"success":true,"content":"<img src=\"\/media\/page\/1528484482.jpg\" width=\"140\" height=\"140\" alt=\"1528484482.jpg\">"} 

그것은 IE에서 깨지지 않는가?

+0

코드를 알려주십시오. – SLaks

+0

닫기 슬래시가 포함되지 않는 이유는 무엇입니까? 문제가 바로 해결되었다고하셨습니까? –

+0

맞습니다. 닫는 슬래쉬가 없으면 아무런 문제가 없습니다. –

답변

1

(이것은 하나의 해결책 이상의 조언 임) 프리젠 테이션 레이어 (js/html [how])와 도메인 레이어 (php [what])를 분리합니다.

도메인 계층은 반환 할 데이터를 결정합니다. 프리젠 테이션 계층은 데이터를 표시하는 방법을 결정합니다.

이미지 경로를 반환하고 프레젠테이션 계층이 사용자에게 이미지를 표시하는 방법을 결정하도록합니다.


이제 문제의 해결책은 doctype 선언에 관한 것입니다. 문제는 doctype을 선언하지 않은 것이고 IE는 기본 doctype으로 XHMTL을 사용하고 있다고 가정합니다.
XHTML에서 태그를 올바르게 닫아야합니다. http://www.w3schools.com/tags/tag_img.asp

나머지 브라우저는 HTML5를 사용하며 이미지에 닫기 태그가 필요하지 않습니다.

+0

안녕하세요, Tomas - 귀하의 조언에 진심으로 감사드립니다. 때로는 자바 스크립트에 별도의 조각으로 큰 코드 블록을 반환하기가 어렵습니다. 저는 HTML5를 사용하고 있습니다 만, 슬래시 닫기 태그를 사용하는 것을 좋아합니다. 두 가지를 모두 사용하는 HTML5에서는 괜찮습니다. 나는 IE가 나에게 선택의 여지가없고 닫는 슬래시없이 태그를 사용한다고 믿는다. –