Oliver Salzburg
Oliver Salzburg

Reputation: 22099

Why is the statusText of my XHR empty?

When I perform an XHR on our production system, the statusText in the response will be an empty string. However, on our development system, the statusText will reflect the status correctly.

According to the documentation for XMLHttpRequest.statusText, it should only be empty while the request is being processed. However, I am seeing this behavior in the onload handler.

Additionally, this behavior can only be observed in Chrome and Edge. Firefox will display the correct text.

So, how is the content of the statusText actually determined?

Upvotes: 17

Views: 11407

Answers (3)

Gutiman
Gutiman

Reputation: 81

Did your production system use HTTPS and your dev system HTTP by any chance?

For some reason on Chrome statusTexts started to return empty as soon as we installed an SSL certificate in our server and url requests started with HTTPS rather than HTTP.

Hence, we made sure to use status rather than statusText.

Upvotes: 1

vladimir
vladimir

Reputation: 15188

Let's look at spec:

HTTP/2 does not define a way to carry the version or reason phrase that is included in an HTTP/1.1 status line.

rfc7540

Upvotes: 5

Julian Reschke
Julian Reschke

Reputation: 42017

It might be because one server uses HTTP/2, while the other does not. HTTP/2 doesn't have reason phrases anymore.

Upvotes: 28

Related Questions