Avatar ·

¿Por qué Google agrega while(1); al inicio de las respuestas JSON?

¡Hola a todos! Soy un desarrollador frontend principiante y recientemente noté algo extraño al trabajar con la API de Google. Cuando hago una solicitud AJAX a sus servidores, la respuesta llega como JSON, pero antes tiene una construcción extraña: `while(1);`. Por ejemplo, la respuesta se ve así: ```javascript while(1); {"name": "John", "age": 30} ``` Al principio pensé que era algún error o bug. Pero luego noté que esto ocurre constantemente. Mi código en JavaScript dejó de funcionar porque `JSON.parse()` arroja un error debido a este prefijo. Así es como intentaba obtener los datos: ```javascript fetch('https://example.com/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error)); ``` Naturalmente, esto no funciona porque la respuesta no es JSON puro. Busqué en Google y encontré que Google usa esta técnica, pero no entendí por qué. ¿Por qué arruinar un JSON válido? ¿Es algún tipo de protección contra algo? ¿Y cómo debería procesar correctamente estas respuestas?