2012-11-05 31 views
0

我遇到了IE瀏覽器的問題(我在IE9中測試,但我相信它在以前的版本中的表現也一樣)。jQuery Ajax JSON響應與<img />在IE中的標記符中斷

我從PHP發送的響應如下:

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

它的工作原理完全罰款火狐,Chrome,Safari瀏覽器,歌劇等 - 但它不能在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的聲明。 我想問題是沒有聲明文檔類型,IE瀏覽器正在將XHMTL作爲其默認的文檔類型。
在XHTML中,標籤必須正確關閉。 http://www.w3schools.com/tags/tag_img.asp

其他瀏覽器需要HTML5,我想,它不需要圖像上的結束標記。

+0

嗨托馬斯 - 我非常感謝你的建議。然而,有時候很難將大塊代碼作爲單獨的塊返回給javascript。我使用的是HTML5,但我喜歡使用斜線結束標記 - 因爲在HTML5中同時使用這兩個標記。我相信IE讓我別無選擇,並且使用沒有結束斜槓的標籤。 –