为什么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?这是针对某种情况的保护措施吗?以及我该如何正确处理这类响应?