web-dev-qa-db-ja.com

0x800a1391-JavaScriptランタイムエラー: 'JSON'はIE 10

IE 10 Windows 8での互換性)を使用しています。デバッグモード(VS 2012)でWebAppを実行しているときに、このエラーが発生します。0x800a1391-JavaScriptランタイムエラー:「JSON」は未定義のコードです未満

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

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

また、奇妙な事実は、IIS 8でホストされている同じコードがIE 10ブラウザで正常に実行されることです。入力はありますか?

9

IE8以降 のみJSONオブジェクト standardsモード 。したがって、ドキュメントにDoctypeがあることを確認する必要があります。

8
T.J. Crowder

私のイントラネットサイトでこの例外が発生したのは、IE 1互換性のイントラネット設定であることがわかりました。

"互換表示でイントラネットサイトを表示する"

このフラグを変更するには、または単に無効にするには、IE 10、次に「コマンドバー」を表示します。 「ツール」>「互換表示設定」を選択し、チェックを外しますオプション-下から2番目。問題をすぐに修正しました。

enter image description here

3
Bern

Json2.jsを含める必要があります

json2包含 を参照してください

詳細については。クライアントがIE7標準を使用する場合に対処しなければならない場合があります。したがって、私たちのコードはそのような場合にも対応する必要がありました。私たちの小売ウェブサイトは、IE7標準を使用する何百ものクライアントからアクセスされています。 json2を含めると、この問題は解決します

1
Mohammed Rafeeq

IE .NETアプリケーションを使用して実行しようとしたときに、Windows8とASP 10)を実行しているときに同じ「JavaScriptランタイムエラー... JSONが未定義です」が発生しましたVisual Studio 2010開発Webサーバー。ブラウザーを開き、[Alt]をクリックしてメニューを表示し、[ツール]-> [互換性ビューの設定]をクリックし、[すべてのWebサイトを互換性ビューで表示する]をオフにすると、エラーが発生しなくなりました。

0
James Henderson