web-dev-qa-db-ja.com

「JSON」はInternet ExplorerのJavaScriptの未定義エラーです

アプリケーションでjQueryを使用しています。 jQueryプラグインを使用してJavaScriptセッションを実装しました。

FirefoxおよびほとんどのInternet Explorer 8ブラウザーで正常に動作しています。

ただし、一部のInternet Explorer 8ブラウザーでは機能しません。次のエラーが発生します。

Message: 'JSON' is undefined
Line: 6
Char: 3
Code: 0


Message: '$.namesession' is null or not an object
Line: 53
Char: 2
Code: 0

`

どちらの場合のInternet Explorerのバージョンも同じです。

ただし、Internet Explorerの設定には、SSL3.0を使用およびスマートスクリーンフィルターを有効にするなどの違いがあり、インターネットオプションの[詳細設定]タブのチェックボックスはオフになっています。

確認すると、機能し始めました。チェックを外したときは、まだ機能していました。

IE8の実際の問題は何ですか?

50
ashishjmeshram

たぶんそれはあなたが探しているものではないかもしれませんが、私は同様の問題を抱えていて、アプリケーションにJSON 2を含めてそれを解決しました:

https://github.com/douglascrockford/JSON-js

他のブラウザーはJSONをネイティブに実装しますが、IE <8(またIE 8互換モード)は実装しません。そのため、含める必要があります。

関連する質問を次に示します。 JSON on IE6(IE7)

[〜#〜] update [〜#〜]

jSONパーサーが更新されたため、新しいパーサーを使用する必要があります。 http://bestiejs.github.io/json3/

67
Dalen
<!DOCTYPE html>

それ以外の場合、IE8は正しく機能しません。また、使用する必要があります:

<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
20
marvwhere

プロジェクトにjson2.jsを追加してください。私が修正したのと同じ問題に直面しました。

リンクを使用してください: https://raw.github.com/douglascrockford/JSON-js/master/json2.js そして新しいファイルを作成しますjson.js、ページと過去を新しく作成されたファイルにコピーし、そのファイルをWebアプリケーションに移動します。

うまくいくことを願っています。

7
Kainattu

JSON応答に余分なコンマがないか確認してください。配列の最後の要素にカンマがある場合、これはIEで壊れます

6
Alex

コンテンツタイプを「application/x-www-form-urlencoded」に変更します

3
Sunil

私は最近同じ問題を抱えていました。私の場合、phpスクリプトの上部に、ブラウザへのコード出力がいくつかあります。空行(?>とhtml-tagの間)の削除と簡単なクリーンアップは私を助けました:

<?php 
include('../config.php');

//

ob_clean();
?>
<!DOCTYPE html>
0
Stefan Michev

このエラーが2回発生しました。 Ajaxタイプを変更することで解決されるたびに。 GET to POSTまたはPOST= GET。

$.ajax({
        type:'GET', // or 'POST'
        url: "file.cfm?action=get_table&varb=" + varb
    });
0
Travis Heeter