2011-02-10 8 views
16

IE8/Chrome, FF fonctionne bien, mais Internet Explorer 7 me donne des maux de tête.Problème avec JSON dans Internet Explorer 7

Je suis en train de obtenir le résultat numérique pour la forme réelle

$(".checklist label").click(function() { 
    checkResults(); 
}); 

function checkResults() { 
    var str = $("form").serializeArray(); 
    $.ajax({ 
     type: "POST", 
     url: "/data.asmx/GetTotal", 
     cache: false, 
     contentType: "application/json; charset=utf-8", 
     data: JSON.stringify({ data: str }), 
     dataType: "json", 
     success: handleHtml, 
     error: ajaxFailed 
    }); 
} 

function handleHtml(msg) { 
    $("#result").text(msg.d); 
} 

function ajaxFailed(xmlRequest) { 
} 

Qu'est-ce que je fait de mal que IE7 wont work?

Merci

Répondre

30

JSON.stringify ne fait pas partie d'IE7.

Vous devez utiliser la mise en œuvre JavaScript de Douglas Crockford ceci:

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

Plus précisément ce script:

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

Il ajoutera le stringify et analyser les méthodes de navigateur qui n'implémentent pas nativement ceci (comme IE7 et ci-dessous)

+5

BTW vous ne devez pas utiliser js Sur stringify, en tant que paramètre de données dans $ .ajax, vous pouvez utiliser un objet entier. – MarrLiss

+0

merci cette réponse m'a aidé ... +1 pour une réponse utile et -1 pour IE. – Pranav

+0

@MarrLiss Voulez-vous dire dans IE7 nous n'avons pas besoin de faire Stringify? Je ne suis pas capable de le faire fonctionner (sans aucun fichier ajouté) – Lijo