2013-03-12 51 views
9

我在Windows 8上使用IE 10兼容性, 在調試模式(VS 2012)中運行WebApp時出現此錯誤。 0x800a1391 - JavaScript的運行時錯誤:「JSON」未定義下面0x800a1391 - JavaScript運行時錯誤:'JSON'在IE 10中未定義

var data = JSON.stringify(GetUserDetails()); 

function GetUserDetails() { 
    var userData = {}; 
    userData.userName = $('#txtUserName').val(); 
    userData.password = $('#txtPassword').val(); 
    return userData; 
} 

代碼此外,奇怪的事實是IIS 8託管在同一代碼運行在IE瀏覽器10的罰款。 有沒有輸入?

+0

這不回答你的問題,但我只是想補充一點,當你面對的IE瀏覽器,你不應該依賴它來轉換對象JSON或JSON反對。我建議使用一些其他的JS庫來完成像[json2.js](https://github.com/douglascrockford/JSON-js)這樣的功能。 – 2013-03-12 11:51:20

+2

我的標記中有<!DOCTYPE html>標記,但繼續收到錯誤,直到我在IE 10工具菜單中取消選擇兼容性視圖。 – MDA 2013-06-26 13:56:36

+0

是的,我相信這是預期的行爲,因爲根據答案,JSON只能在標準模式下工作。 – 2013-06-27 09:02:51

回答

7

IE8以上only haveJSON對象standards mode。所以你需要確保文檔有一個文檔類型。

+1

謝謝,這看起來是答案...當我檢查IE 10有它和IE 10兼容性沒有它。 IE 10有像<! - DOCTYPE html - >,而IE 10兼容性有<!DOCTYPE html PUBLIC「」> ...不知道爲什麼它被評論.... – 2013-03-12 18:04:32

+0

@RameezAhmedSayad:IE10肯定有'JSON' 。同樣,它僅在標準模式下可用。 – 2013-03-12 18:05:00

+0

是的,你是正確的Crowder – 2013-03-12 18:08:12

0

我嘗試使用Visual Studio 2010開發Web服務器運行ASP .NET應用程序時,運行Windows 8和IE 10時,出現了「JavaScript運行時錯誤... JSON未定義」。當我打開瀏覽器時,點擊「Alt」顯示菜單,然後點擊工具 - >兼容性視圖設置,並取消選中「在兼容性視圖中顯示所有網站」,我停止收到錯誤。

1

您需要包括json2.js

看到json2 inclusion

瞭解更多詳情。有些情況下我們必須處理客戶使用IE7標準的情況。所以我們的代碼也不得不迎合這種情況。我們的零售網站被數百個使用IE7標準的客戶訪問。包括json2解決了這個問題

3

我發現對我來說,這是這是提出這個例外我的Intranet站點的IE 10兼容的局域網設置:

「顯示在兼容性視圖中的Intranet站點」

要改變此標誌,或者只是簡單地禁用它,顯示IE 10的「命令欄」,再選擇「工具」>「兼容性視圖設置「並取消選中 - 從底部開始第二個選項。立即解決問題。

enter image description here

+0

DOCTYPE實際上翻譯相同,你可以說這兩個都是隱含的 – 2013-12-09 05:52:22

相關問題