XMLHttpRequest.send() не читает ответ при коде != 200
Суть проблемы: XMLHttpRequest не хочет считывать код ошибки и JSON содержимое ответа сервера в случае ошибки (н.р. код 502).
Пример:
const formData = new FormData();
const QHttp = new XMLHttpRequest();
QHttp.open("POST", reqUrl, true);
QHttp.responseType = 'json';
QHttp.onerror = () => {console.log(QHttp.response, QHttp.status)}
QHttp.send(formData);
В консоль выводится: null 0
, хотя тот же Postman получает все верно:
Status: 502 Bag Gateway Time: 65ms Size: 187 B
{
"message": "too long request 277188118 > 209715200!"
}
В чем может быть проблема?
Дополнено: Похоже, что проблема не в кодах ответа а в том, что XMLHttpRequest неверно отрабатывает, если сервер не принимает от него данные, а сразу возвращает ему код ошибки с сообщением.
Источник: Stack Overflow на русском