‘JSON’ è un errore non definito solo in IE

Sto facendo una chiamata AJAX a un servizio WCF e quando passo i miei dati uso JSON.stringify ()

La chiamata ritorna e funziona perfettamente in FF e in Chrome, ma non in IE8. Viene visualizzato un errore: “JSON” non è definito

suggerimenti?

ps Voglio anche che funzioni in IE7

Usa json2 per un’implementazione coerente cross browser.

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

Ho avuto il problema con IE9. IE9 stava rendendo la mia pagina in modalità “quirks”, la soluzione era semplicemente aggiungere . Questo mi ha portato fuori dalla modalità “Quirks” che sono sicuro di aver risolto più di questo problema!

Aggiornare

Controlla la libreria JSON3 . Esso funziona magicamente.

Cambiamenti da JSON2

Spero che aiuti.


Spero che questo ti aiuti. Ho avuto questo da alcune fonti online molto tempo fa. non hanno i loro collegamenti
Scusa se non sono in grado di citare i riferimenti.

 var JSON = JSON || {}; // implement JSON.stringify serialization JSON.stringify = JSON.stringify || function(obj) { var t = typeof (obj); if (t != "object" || obj === null) { // simple data type if (t == "string") obj = '"' + obj + '"'; return String(obj); } else { // recurse array or object var n, v, json = [], arr = (obj && obj.constructor == Array); for (n in obj) { v = obj[n]; t = typeof (v); if (t == "string") v = '"' + v + '"'; else if (t == "object" && v !== null) v = JSON.stringify(v); json.push((arr ? "" : '"' + n + '":') + String(v)); } return (arr ? "[" : "{") + String(json) + (arr ? "]" : "}"); } }; // implement JSON.parse de-serialization JSON.parse = JSON.parse || function() { var r = "(?:-?\\b(?:0|[1-9][0-9]*)(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]+)?\\b)", k = '(?:[^\\0-\\x08\\x0a-\\x1f"\\\\]|\\\\(?:["/\\\\bfnrt]|u[0-9A-Fa-f]{4}))'; k = '(?:"' + k + '*")'; var s = new RegExp( "(?:false|true|null|[\\{\\}\\[\\]]|" + r + "|" + k + ")", "g"), t = new RegExp( "\\\\(?:([^u])|u(.{4}))", "g"), u = { '"' : '"', "/" : "/", "\\" : "\\", b : "\u0008", f : "\u000c", n : "\n", r : "\r", t : "\t" }; function v(h, j, e) { return j ? u[j] : String.fromCharCode(parseInt(e, 16)); } var w = new String(""), x = Object.hasOwnProperty; return function(h, j) { h = h.match(s); var e, c = h[0], l = false; if ("{" === c) e = {}; else if ("[" === c) e = []; else { e = []; l = true; } for ( var b, d = [ e ], m = 1 - l, y = h.length; m = 0;) delete f[i[g]]; } return j.call(n, o, f); }; e = p({ "" : e }, ""); } return e; }; }(); 

Per fare in modo che la tua funzione funzioni meglio con IE importando il codice parser JSON2 nel tuo file, poiché IE per impostazione predefinita non supporta JSON.Stringify() .

Può essere trovato qui

In IE apri le impostazioni di visualizzazione della compatibilità e rimuovi il localhost dalla casella di riepilogo per “Siti Web aggiunti alla Visualizzazione Compatibilità”. Ha funzionato per me.

JQuery 2.x non è più compatibile con IE 6-8. Note sulla versione beta 2 di JQuery 2.0

So che la domanda principale riguarda le versioni precedenti di JQuery, ma questo mi ha causato l’errore. Ho installato JQuery 1.x, che è compatibile API con JQuery 2.x, e ho aggiunto il seguente codice di rilevamento: