Avatar ·

¿Por qué Google añade while(1); al inicio de sus respuestas JSON?

¡Hola a todos! Soy un desarrollador frontend principiante y recientemente me encontré con una característica interesante al trabajar con la API de Google. Cuando hago una solicitud a algunos de sus endpoints, como la API de Google Calendar o Google Suggest, en la respuesta veo una construcción extraña: `while(1);` antes del JSON. Aquí hay un ejemplo de cómo se ve la respuesta: ``` while(1); {"items": [{"id": 1, "name": "test"}]} ``` Al principio pensé que era un error o un bug. Intenté parsear esa respuesta con `JSON.parse()` y, naturalmente, obtuve un error porque `while(1);` no es JSON válido. Tuve que escribir un workaround para eliminar ese prefijo: ```javascript fetch('https://some-google-api.com/data') .then(response => response.text()) .then(text => { const json = text.replace(/^while\(1\);/, ''); const data = JSON.parse(json); console.log(data); }); ``` Pero esto parece una solución muy extraña y poco obvia. ¿Por qué Google añade este `while(1);`? Después de todo, e