Why is the statusText of my XHR empty?

2019-01-20 01:01发布

问题:

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?

回答1:

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



回答2:

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