2017-01-13 3 views
2

Когда я выполняю XHR на нашей производственной системе, statusText в ответе будет пустой строкой. Однако в нашей системе разработки statusText будет правильно отображать состояние.Почему statusText моего XHR пуст?

В соответствии с документацией для XMLHttpRequest.statusText, она должна быть пуста только во время обработки запроса. Тем не менее, я наблюдаю это поведение в обработчике onload.

Кроме того, это поведение наблюдается только в Chrome и Edge. В Firefox будет отображаться правильный текст.

Итак, как определяется фактическое содержание statusText?

+1

Может быть, ваш производственный сервер работает HTTP/2? –

+0

@JulianReschke Мы работаем за балансиром нагрузки AWS (ALB) и, да, похоже, что связь происходит через HTTP/2. Какая здесь связь? –

+1

В HTTP/2 нет причинных фраз. –

ответ

4

Возможно, это связано с тем, что один сервер использует HTTP/2, а другой - нет. У HTTP/2 больше нет аргументов причины.

+1

После дальнейших исследований это не кажется правильным. На самом деле это проблема Chrome, связанная с их реализацией расширений HTTP/2. –

+2

Ну, у HTTP/2 нет разумов. Период. Вполне возможно, что некоторые UAs * подражают фразам разума в этом случае. (см. ) –

0

Давайте посмотрим на спецификации:

HTTP/2 не определяет способ носить версии или причина фразу , которая включена в строке HTTP/1.1 статуса.

rfc7540