50 votes

L'erreur 'JSON' est indéfinie en JavaScript dans Internet Explorer.

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

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

Mais dans certains navigateurs Internet Explorer 8, cela ne fonctionne pas. Il 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 est la même dans les deux cas.

Mais il y avait quelques différences dans les paramètres d'Internet Explorer comme Utilisez SSL3.0 y Activer les filtres Smart Screen les cases à cocher de l'onglet Avancé des options Internet n'étaient pas cochées.

Quand nous l'avons vérifié, il a commencé à fonctionner. Quand nous les avons décochés, ça fonctionnait toujours.

Quel est le problème réel dans IE8 ?

67voto

Dalen Points 5015

Ce n'est peut-être pas ce que vous recherchez, mais j'ai eu un problème similaire et je l'ai résolu en intégrant JSON 2 à mon application :

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

D'autres navigateurs mettent en œuvre JSON de manière native, mais IE < 8 (également le mode de compatibilité IE 8) ne le fait pas, c'est pourquoi vous devez l'inclure.

Voici une question connexe : JSON sur IE6 (IE7)

UPDATE

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

20voto

marvwhere Points 191
<!DOCTYPE html>

Sinon, IE8 ne se comporte pas correctement. Vous devriez également utiliser :

<meta http-equiv="X-UA-Compatible" content="IE=EDGE" />

7voto

Kainattu Points 56

S'il vous plaît, ajoutez 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 collez-la dans le nouveau fichier créé, puis déplacez ce fichier dans votre application Web.

J'espère que ça va marcher.

6voto

Alex Points 5999

Vérifiez les virgules supplémentaires dans votre réponse JSON. Si le dernier élément d'un tableau comporte une virgule, il y aura un problème dans IE.

3voto

Sunil Points 1375

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X