2011-02-10 9 views
16

IE8/Chrome, FF funziona bene ma Internet Explorer 7 mi dà mal di testa.Problema con JSON in Internet Explorer 7

Sto cercando di ottenere il risultato numerico per forma attuale

$(".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) { 
} 

Che cosa ho fatto di male che IE7 non funzionerà?

Grazie

risposta

30

JSON.stringify non è parte di IE7.

Dovrete usare l'esecuzione JavaScript Douglas Crockford di questo:

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

In particolare questo script:

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

Si aggiungerà la stringa i e analizzare metodi per il browser che non implementa in modo nativo questo (come IE7 e seguenti)

+5

BTW non è necessario utilizzare js su stringify, come parametro di dati in $ .ajax puoi usare l'intero oggetto. – MarrLiss

+0

grazie questa risposta mi ha aiutato ... +1 per la risposta utile e -1 per IE. – Pranav

+0

@MarrLiss Intendi in IE7 che non è necessario eseguire Stringify? Non riesco a farlo funzionare (senza alcun file aggiunto) – Lijo