2012-01-25 212 views
2

JSON - >的響應返回JSON解析上IE8失敗

{"msg":"<DIV><P>Unfortunately we were unable to process your application.</p><BR>Please upload a CV<BR></DIV>", "status":"error"} 

錯誤

SCRIPT1015: Unterminated string constant

與錯誤

var data = $(this).contents().find('body').html();//I have console logged this and holds the above json as a string. 
data = jQuery.parseJSON(data);// problem is here. 

f顯示線或者某些原因,我認爲,這可能是因爲HTML標籤,因爲.text()作爲反對.html(),但是我需要使用.html(),因爲它與HTML標籤的格式存在的作品。

有什麼建議嗎?

+0

這將如何工作?獲取ENTIRE文檔的HTML(又名'body')並假裝它是json? –

+0

VAR數據是'$(「IFRAME」)contents.find(「主體」)HTML();'具有上面的字符串'json',IE8的只有這個是不行的,如果我只是複製並粘貼返回的上述json,並執行'data = jQuery.parseJSON(''

...blabla
'')'此方法有效。 – Val

+0

假定iframe在html外殼中有json。服務器吐出什麼東西?一個原始的json字符串?或者是不是真的發出了' {味精:.....}'?如果iframe中沒有body標籤,那麼您將無法使用該jquery find()。 –

回答

4

的是,在JSON換行?如果是這樣的話,那就是你的錯誤。嘗試用data.replace('\n', ' ')之類的東西來消除它。

從評論中更新:Val意識到IE8解析器實際上是在他的測試用例上,而原始的JavaScript JSON解析器處理它就好了。如果您需要原始解析器,則它位於:https://github.com/douglascrockford/JSON-js,鏈接到:http://www.json.org,幾乎是替代品的下降。

+0

不,它不是一個新的生產線,它只是一個複製和粘貼的問題,我試過替換隻是incase,但是,不... ... – Val

+0

順便說一句,它只在IE8上其餘的工作正常。 – Val

+0

奇數。我複製並粘貼你的確切數據,無需換行符,並且'JSON.parse()'和'$ .parseJSON()'處理它就好了。你確定這是確切的代碼和數據嗎? –