Bizarre Javascript JSON non défini erreur
Je suis en train de vivre une erreur que je n'ai pas pu trouver aucune mention de n'importe où. Je suis l'élaboration d'un AJAX service web WCF avec ASP.NET. Dans mon ASP.NET maître de la page <asp:ScriptManager>, j'ai inclus la json.js fichier, le copier frais de json.org. Lorsque je lance la page, il échoue (VS 2008, les prises une exception Javascript) sur la première ligne de code json.js (après beaucoup de commentaires), qui est:
JSON = JSON || {};
Le message d'erreur indique que JSON est pas défini:
Erreur d'exécution Microsoft JScript: 'JSON' est pas défini
Bien, duh! C'est pourquoi la ligne est de tester si elle est définie et si le paramètre d'un objet vide! Il est censé être indéfini, non? Le dernier que j'ai entendu dire que c'était pas une erreur dans le code Javascript pour effectuer une telle opération sur une variable non définie.
Quelqu'un peut me donner un indice quant à ce qu'il se passe ici? Je soupçonne que c'est quelque chose de mal tourné, d'ailleurs c'est en quelque sorte à l'origine de ce problème. Je n'ai pas une expérience profonde avec Javascript ou ASP.NET donc peut-être que je suis pas certains commune de la chasse aux sorcières dans le programme d'installation.
OriginalL'auteur Nate C-K | 2009-11-26
Vous devez vous connecter pour publier un commentaire.
Vous devriez être en utilisant json2.js.
La ligne incriminée a été changé:
this
est la portée globale, c'est à direthis === window
.Nate C-K, si cela résout votre problème, s'il vous plaît "accepter" la réponse. Vous pouvez annuler cela plus tard si vous le souhaitez. Il vous donnera des points et aussi aider la prochaine fois vous poser une question.
Merci!!!! Fonctionne très bien
OriginalL'auteur
Je voudrais faire assurez-vous que votre page est rendu dans IE8 normes de la mode; j'ai trouvé que si le document est rendu dans Bizarreries ou mode IE7,
this.JSON
est pas défini.Vous pouvez forcer IE8 pour le rendu dans IE8 normes de la mode, y compris la balise meta suivante dans votre page:
OriginalL'auteur rob
Comme mentionné précédemment, vous devriez être en utilisant json2.
L'erreur, cependant, de tiges à partir de MS de la manipulation de variables globales. Essayez de la fenêtre.JSON = fenêtre.JSON || {}; à Partir de là, JSON devrait fonctionner parfaitement.
OriginalL'auteur John Smith
vous pourriez avoir à faire
var JSON = JSON || {};
J'ai couru dans les mêmes problèmes avec Javascript dans IE8.
OriginalL'auteur fredrik
J'ai eu le même problème en essayant d'utiliser google maps "streetview". Le streetview fenêtre transformer complètement noir, et je serais l'icône dans la barre d'état indiquant une erreur. J'ai désactivé DivX comme webdev007 fait et le problème a été résolu! Webdev, vous êtes un génie! Merci!
OriginalL'auteur Eugene
J'ai récemment commencé à recevoir le JSON non défini erreur de JavaScript et trouvé le problème était dû à une récente DivX ajouter dans IE. Le DivX ajouter également causé la sécurisation des contenus en garde sur les pages web qui ont tous https références et pas de http (j'ai mis ma Afficher un contenu mixte pour demander la correction de références dans le développement web). Après j'ai désactivé le DivX ajouter sur, le JSON non défini erreur JavaScript ont disparu ainsi que l'erreur de contenu sécurisé avertissement, des pop-ups.
OriginalL'auteur webdev007
J'ai la même erreur et j'étais déjà à l'aide de json2;
Pour moi, il fonctionne quand j'ajoute
var
avant l'expression:OriginalL'auteur Davinho