web-dev-qa-db-fra.com

'JSON' est une erreur non définie en JavaScript dans Internet Explorer

Nous utilisons jQuery dans notre application. Nous avons utilisé un plugin jQuery pour implémenter une session JavaScript.

Il fonctionne correctement dans Firefox et la plupart des navigateurs Internet Explorer 8.

Mais dans certains navigateurs Internet Explorer 8, cela ne fonctionne pas. Cela donne l'erreur suivante.

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


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

`

La version d'Internet Explorer dans les deux cas est la même.

Mais il y avait quelques différences dans les paramètres d'Internet Explorer comme tiliser SSL3. et Activer les filtres Smart Screen dans l'onglet Avancé dans les options Internet n'étaient pas cochées.

Lorsque nous avons vérifié, cela a commencé à fonctionner. Quand nous les avons décochés, cela fonctionnait toujours.

Quel est le problème actuel dans IE8?

50
ashishjmeshram

Peut-être que ce n’est pas ce que vous recherchez, mais j’ai eu un problème similaire que j’ai résolu, y compris JSON 2 pour mon application:

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

D'autres navigateurs implémentent JSON de manière native mais IE <8 (également IE 8)) ne le fait pas, c'est pourquoi vous devez l'inclure.

Voici une question connexe: JSON sur IE6 (IE7)

[~ # ~] met à jour [~ # ~]

l'analyseur JSON a été mis à jour, vous devez donc utiliser le nouveau: http://bestiejs.github.io/json3/

67
Dalen
<!DOCTYPE html>

Sinon, IE8 n'agit pas correctement. Aussi, vous devriez utiliser:

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

S'il vous plaît ajouter json2.js dans votre projet. J'ai été confronté au même problème que j'ai résolu.

veuillez utiliser le lien: https://raw.github.com/douglascrockford/JSON-js/master/json2.js et créer un nouveau fichier json.js, copiez la page et la coller dans le fichier nouvellement créé, puis déplacez ce fichier dans votre application Web.

J'espère que ça va marcher.

7
Kainattu

Recherchez des virgules supplémentaires dans votre réponse JSON. Si le dernier élément d'un tableau a une virgule, cela va casser dans IE

6
Alex

Changez le type de contenu en 'application/x-www-form-urlencoded'

3
Sunil

J'ai eu le même problème récemment. Dans mon cas, au sommet d’un script php, j’avais un peu de génération de code, bien sûr, une sortie supplémentaire pour le navigateur. La suppression des lignes vides (entre?> Et html-tag) et un nettoyage simple m'ont aidée:

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

//

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

J'ai eu cette erreur 2 fois. Chaque fois, le problème a été résolu en changeant le type ajax. Soit GET pour POST ou POST pour GET.

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