Avatar ·

Por que o Google adiciona while(1); no início das respostas JSON?

Olá a todos! Sou um desenvolvedor front-end iniciante e recentemente notei algo estranho ao trabalhar com a API do Google. Quando faço uma requisição AJAX para os servidores deles, a resposta vem como JSON, mas antes dela há uma construção estranha: `while(1);`. Por exemplo, a resposta se parece com isso: ```javascript while(1); {"name": "John", "age": 30} ``` No começo, pensei que fosse algum erro ou bug. Mas depois percebi que isso acontece constantemente. Meu código em JavaScript parou de funcionar porque `JSON.parse()` gera um erro devido a esse prefixo. Aqui está como eu tentava obter os dados: ```javascript fetch('https://example.com/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Erro:', error)); ``` Naturalmente, isso não funciona porque a resposta não é JSON puro. Pesquisei no Google e descobri que o Google usa essa técnica, mas não entendi o motivo. Por que estragar um JSON válido? É algum tipo de proteção contra algo? E como devo processar corretamente essas respostas?