XmlHttp: как получить фактический текст statusText из объекта msxml.xmlhttp? - PullRequest
4 голосов
/ 29 января 2010

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

HTTP/1.1 400 Not a valid http POST request

, который я могу видеть, хотя Fiddler след:

alt text

Но когда я спрашиваю у xmlHttp-запроса status и statusText , он показывает «стандартное» описание для текст статуса, а не текст фактического статуса:

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

, который я вижу в IDE разработки:

alt text

Я просмотрел все остальные свойства 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 удается прочитать текст фактического состояния:

alt text

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

1 Ответ

2 голосов
/ 29 января 2010

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

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

...