2011-06-07 82 views
2

我一直在使用一些java腳本,JQuery是確切的,我有一些問題與我在IE9中的Ajax調用,一切正常工作在Firefox4和我沒有錯誤,但在IE9控制檯時我運行腳本我收到以下錯誤IE9中jQuery ajax的奇怪問題

SCRIPT5009: 'JSON' is undefined 
FeedbackComment.js, line 49 character 17 

的代碼非常簡單,表示收集反饋和場景背後類標準

$.ajax({ 
       type: "POST", 
       url: defaults.WebServiceURL, 
       data: "{ 'collectedFeedback':" + JSON.stringify(collectedFeedback) + "}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (result) { 

       } 
      }); 

還有web服務。但是這個問題似乎與他們無關。

我不確定發生了什麼事,任何人都可以幫助我。 在此先感謝

+1

您正在嘗試引用一個名爲JSON的變量 - 'JSON.stringify(collectedFeedback)' - 尚未定義 - 可能是因爲定義它的代碼在IE9中不起作用。你可以發佈該代碼嗎? – 2011-06-07 14:06:44

+1

看起來JSON庫沒有被IE加載?假設JSON.stringify在線49 – WraithNath 2011-06-07 14:07:47

+1

你們絕對正確!我從https://github.com/douglascrockford/JSON-js/blob/master/json2.js添加了json2,並且事情又開始發揮作用。 非常感謝您的幫助! – Dmitris 2011-06-07 14:19:38

回答

4

只是想補充說,如果你在IE中,它默認進入怪癖模式或IE 7或更早的兼容模式JSON將不可用。

+1

檢查您的DOCTYPE,IE使用它來切換其模式。 – 2011-06-21 19:40:07

+1

並非總是如此,doctype可以設置,但如果IE遇到任何不喜歡的東西,就像doctype標籤之前的註釋一樣,仍然會切換到怪癖。許多內容系統會在doctype強制瀏覽器進入怪癖模式之前提交註釋。上次我看到這個時,我得到了和OP一樣的錯誤。 – ethermal 2011-06-22 17:08:38

+4

上帝,我討厭IE>。< – 2011-06-22 18:01:53

0

任何時候我遇到過IE 7,8或9的問題,我檢查的第一件事就是字符集,並確保它被迫使用utf-8。對此非常挑剔。

另一件需要注意的是內容類型標題。確保它是正確的,並與您回覆的回覆相匹配。它也傾向於對此挑剔。例如,如果你正在發出一個ajax請求並期望得到一個json響應,你應該將你的內容類型設置爲'application/json;字符集= UTF-8;」。如果你正在做一個ajax請求並期待html作爲你的響應,你的內容類型應該設置爲'text/html;字符集= UTF-8;」。

希望這可以幫助某人,因爲它有我。

0

我有這個問題。代碼在某些頁面上工作,而不是其他頁面。由於從「火箭危險品」上面的評論,我能確定只需要在網頁:

<!DOCTYPE html> 

在頂部。沒有這個,JSON對象就不存在了!而IE的行爲就像古代歷史中的某種東西。難怪微軟正在傾銷這個代碼庫,在新的瀏覽器上重新開始。