Как можно избежать проблемы получения HTML вместо JSON от сервера?

Как поправить запрос на сайте, чтобы он возвращал ожидаемый формат JSON вместо HTML разметки с функциями JavaScript?
Изображение к вопросу
  • 1 января 2024 г. 15:27
Ответы на вопрос 2
Если вы получаете HTML вместо JSON от сервера, есть несколько способов справиться с этой проблемой:

1. Убедитесь, что вы отправляете правильный заголовок в своем запросе. Когда вы делаете запрос к серверу, в заголовке должен быть указан Accept типа данных, который вы ожидаете получить. В вашем случае, вы должны добавить заголовок Accept: application/json. Например, в JavaScript можно использовать следующий код:

```javascript
var xhr = new XMLHttpRequest();
xhr.open('GET', 'url-адрес-сервера');
xhr.setRequestHeader('Accept', 'application/json');
xhr.onreadystatechange = function () {
    if (xhr.readyState === 4 && xhr.status === 200) {
        var jsonResponse = JSON.parse(xhr.responseText);
        // Обработка полученного JSON объекта
    }
};
xhr.send();
```

2. Проверьте, правильно ли вы указали путь к серверу в своем запросе. Убедитесь, что запрос обращается к правильному URL-адресу, где сервер ожидает получить запрос на возврат JSON данных.

3. Проверьте серверную сторону. Убедитесь, что сервер правильно обрабатывает запросы на возврат JSON данных. Серверный код должен быть настроен для отдачи JSON вместо HTML.

4. Если вы работаете с сторонним API, убедитесь, что документация API указывает, как правильно отправлять запросы и ожидать JSON данных в ответе.

5. Если все еще получаете HTML вместо JSON, свяжитесь с владельцем сервера или разработчиком API для получения дополнительной помощи и информации о том, как правильно отправлять запросы и получать JSON данные.
Прежде всего надо понять, что защиту от парсинга пишут не дураки. И так же то, что все защиты разные. Как только в интернете появляется гарантировано работающий рецепт обхода какой-то за защиты, ей сразу меняют. Поэтому в каждом отдельном случае приходится искать способ обхода защиты самостоятельно и быть умнее её разработчиков. В каких-то случаях, вы боретесь с подростком-фралансером, пишущим код для маленького бизнеса со скромным бюджетом, тогда вам придётся столкнуться с чем-то типа проверки заголовков, csrf и тому подобными простыми штуками. В каком-то, вы боретесь с корпорацией, в которой целый отдел отличных опытных разработчиков пишет поведенческий фильтр и валидацию на клиентской стороне. В последнем случае вам придётся применять Selenium, ежемесячно платить за прокси и так же ежемесячно править довольно сложный алгоритм, притворяющий группой людей.
Похожие вопросы