Avatar ·

Pourquoi Google ajoute-t-il while(1); au début des réponses JSON ?

Bonjour à tous ! Je suis un développeur frontend débutant et j'ai récemment remarqué une chose étrange en travaillant avec l'API Google. Quand je fais une requête AJAX à leurs serveurs, la réponse contient du JSON, mais précédé d'une construction étrange : `while(1);`. Par exemple, la réponse ressemble à ceci : ```javascript while(1); {"name": "John", "age": 30} ``` Au début, j'ai pensé que c'était une erreur ou un bug. Mais ensuite j'ai remarqué que cela se produit systématiquement. Mon code JavaScript a cessé de fonctionner car `JSON.parse()` génère une erreur à cause de ce préfixe. Voici comment j'essayais d'obtenir les données : ```javascript fetch('https://example.com/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Erreur:', error)); ``` Naturellement, cela ne fonctionne pas car la réponse n'est pas du JSON pur. J'ai cherché sur Google et j'ai trouvé que Google utilise cette technique, mais je n'ai pas compris pourquoi. Pourquoi gâcher un JSON valide ? Est-ce une sorte de protection contre quelque chose ? Et comment dois-je traiter correctement ces réponses ?