Это потому, что вы пытались выполнить запрос из адресной строки браузера , и в этом случае браузер автоматически добавляет Accept: text/html
в заголовки запроса⁽¹⁾.
Затем, поскольку у API Places есть какой-то инструмент веб-помощника для воспроизведения доступных параметров, он возвращает html (веб-интерфейс), поскольку в заголовках запроса было найдено Accept: text/html
.
Решение для добавления callback
- это скорее обходной путь, поскольку оно оборачивает ответ значением параметра обратного вызова.
Ваш первоначальный запрос был действительно действительным. Если вы отправляете его из своей программы или REST-клиента, такого как Postman, а не из браузера, вы фактически получаете JSON по умолчанию, так что больше ничего не нужно делать. Конечно, вы можете явно отправить заголовок Accept: application/json
, чтобы быть в безопасности.
[1] Откройте сетевую панель инструментов разработчика браузера, чтобы увидеть, что отправлено.