Por que o Google adiciona while(1); no início de suas respostas JSON?
Olá a todos! Sou um desenvolvedor frontend iniciante e recentemente me deparei com uma característica interessante ao trabalhar com a API do Google. Quando faço uma requisição para alguns de seus endpoints, como o Google Calendar API ou o Google Suggest, vejo uma construção estranha na resposta: `while(1);` antes do próprio JSON.
Aqui está um exemplo de como a resposta se parece:
```
while(1);
{"items": [{"id": 1, "name": "test"}]}
```
No começo, pensei que fosse algum erro ou bug. Tentei parsear essa resposta com `JSON.parse()` — naturalmente, obtive um erro, porque `while(1);` não é um JSON válido.
Tive que escrever um workaround para cortar esse prefixo:
```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);
});
```
Mas isso parece uma solução muito estranha e nada óbvia. Por que o Google adiciona esse `while(1);`? Afinal, e...