Avatar ·

为什么Google在JSON响应开头添加while(1);?

大家好!我是一名前端开发新手,最近在使用Google API时注意到一个奇怪的现象。当我向他们的服务器发送AJAX请求时,返回的JSON前面有一个奇怪的构造:`while(1);`。例如,响应看起来像这样: ```javascript while(1); {"name": "John", "age": 30} ``` 起初我以为这是某种错误或bug。但后来发现这种情况一直出现。我的JavaScript代码因此无法工作,因为`JSON.parse()`由于这个前缀而报错。 以下是我尝试获取数据的方式: ```javascript fetch('https://example.com/api/data') .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('错误:', error)); ``` 自然,这不起作用,因为响应不是纯JSON。我搜索了一下,发现Google使用了这种技术,但不明白为什么。为什么要破坏有效的JSON?这是针对某种情况的保护措施吗?以及我该如何正确处理这类响应?