2010-03-26 16 views
6

estoy usando la siguiente línea de código jQuery:JSON indefinida en IE7

$.get('/ajax/buy', {'categoryname':chosenSelected}, function(data) { 
    data = JSON.parse(data); 
... 

Sin embargo, cuando se ejecuta en IE7 me sale este mensaje de error: JSON undefined:.

¿Cómo puedo usar el analizador con compatibilidad con IE7 (y todos los principales navegadores)?

Respuesta

7

No es necesario analizar JSON manualmente. Se podría utilizar la función getJSON:

$.getJSON('/ajax/buy', { 'categoryname' : chosenSelected }, function(data) { 

    // data will be already a parsed JSON object 
}); 

El método parse que está intentando llamar está disponible en la biblioteca json2.

+0

Gracias! No encuentro una función $ .postJSON similar. ¿Alguna razón especial para eso? – Joel

+0

Y si realmente no hay alguna función como, parece que Luc'as idea será buena: $ .post ('/ ajax/buy', {'categoryname': chosenSelected}, function (data) { data = jQuery.parseJSON (data); – Joel

+0

No, nada en la tierra me convencerá de que es mejor analizar el JSON manualmente en lugar de usar la funcionalidad incorporada en jQuery, es decir, esto te hace escribir más código y cuantos más códigos tienes para lograr lo mismo, hay más posibilidades de que se equivoque. –

11

Puede usar parseJSON disponible en jQuery.

+0

Yo comentaría que, aunque las otras respuestas son correctas porque puede obtener getJSON o las otras funciones de ajax, a veces es útil poder tener una alternativa amigable para IE7 a JSON, así que gracias por señalar esta función. –

+0

De la fuente de jQuery: ** parseJSON: JSON.parse, ** así que no confiaría en jQuery.parseJSON. – Sam

+1

para el registro, sobre el comentario de @ Sam. Eso solo es cierto para jQuery 2.0, que ha perdido soporte para navegadores más antiguos. En 1.9.x, parseJSON se implementa con un respaldo. – gargc

1

Necesita agregar un analizador JSON. Los viejos navegadores no incluyen eso.

1 - Ir al repositorio: https://github.com/douglascrockford/JSON-js/

2 - Descargar e incluyen json2.js en su sitio o aplicación.

Eso es todo.

+0

Como se señaló anteriormente, creo que es estrictamente necesario cuando también desea codificar JavaScript en JSON. – Phluks