XmlHttp: как получить фактический текст состояния из объекта msxml.xmlhttp?

Веб-сервер возвращает код состояния и описание в ответ на запрос XmlHttp. Фактический ответ о статусе от сервера начинается с:

HTTP/1.1 400 Not a valid http POST request

который я вижу в трассировке Fiddler:

альтернативный текст

Но когда я запрашиваю запрос xmlHttp для статуса и statusText, он показывает мне "стандартное" описание текста статуса, а не фактический текст статуса:

xmlHttp.status: 200
xmlHttp.statusText: "Bad Request"

который я вижу в среде разработки:

альтернативный текст

я изучил все остальные свойства IXMLHttpRequest, и я не могу найти ни одного, содержащего фактический текст статуса ответа. Его нет даже ни в одном из заголовков ответов. :

Server: ASP.NET Development Server/8.0.0.0
Date: Thu, 28 Jan 2010 21:03:16 GMT
X-AspNet-Version: 2.0.50727
X-LSI-Proxy-Identificaton: {65B76AB2-8A28-4A2B-B282-7E1FDC9DBCA1}
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/xml; charset=utf-8
Content-Length: 4652
Connection: Close

Internet Explorer, Chrome и FireFox умудряются читать фактический текст состояния:

альтернативный текст

Как я могу получить фактический statusText из объекта Microsoft xmlHttp?


person Ian Boyd    schedule 28.01.2010    source источник


Ответы (1)


К сожалению, код 400 определяется как неверный запрос как часть HTTP/1.1 RFC, а XMLHTTP (что более вероятно, URLMON или WinHTTP) просто преобразует число и игнорирует переданный текст состояния. Поскольку строка состояния является частью протокола, а не заголовком ответа, имеет смысл не указывать ее в списке заголовков ответа.

Однако я бы сказал, что браузеры отображают текст состояния только «правильно», потому что они отображают пользовательскую HTML-страницу, которая была отправлена ​​​​вместе с ней, которая имеет этот текст как TITLE в элементе HEAD.

person tyranid    schedule 29.01.2010
comment
Похоже, вы правы по обоим пунктам. (1) xmlhttp использует описания состояния по умолчанию, а не возвращенные, и (2) заголовок содержит заголовок html, а не код состояния http и statusText. - person Ian Boyd; 29.01.2010