XmlHttp:如何从msxml.xmlhttp对象获取实际statusText?

时间:2010-01-28 21:12:21

标签: msxml xmlhttprequest xmlhttprequest-states

Web服务器正在返回状态代码和描述,以响应XmlHttp组件的请求。服务器的实际状态响应以:

开头
HTTP/1.1 400 Not a valid http POST request

我可以通过Fiddler跟踪看到:

alt text http://i49.tinypic.com/3325474.jpg

但是当我向 status statusText 询问xmlHttp请求时,它会向我显示状态文本的“标准”说明,而不是实际的状态文本:

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

我可以在开发IDE中看到:

alt text http://i50.tinypic.com/28lghvq.jpg

我围绕IXMLHttpRequest的所有其他属性,我找不到包含响应的实际状态文本的任何属性。它甚至不在response headers中的任何一个:

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 http://i46.tinypic.com/azfc6b.jpg

如何从Microsoft xmlHttp对象获取实际的 statusText

1 个答案:

答案 0 :(得分:2)

不幸的是,代码400被定义为错误请求,作为HTTP / 1.1 RFC的一部分,XMLHTTP(更可能是URLMON或WinHTTP)只是转换数字并忽略传递的状态文本。由于状态行是协议的一部分而不是响应头,因此有意义的是它没有在响应头列表中定义。

但是我认为浏览器只是“正确”显示状态文本,因为它们显示的是自定义HTML页面,该页面与HEAD元素中的TITLE一起发送。