Php XMLHttpRequest返回在IE9中始终未定义

Php XMLHttpRequest返回在IE9中始终未定义,php,ajax,internet-explorer,jquery,Php,Ajax,Internet Explorer,Jquery,我想知道为什么这段代码可以在firefox、chrome和IE10上运行,而不能在IE9上运行 var ajaxReq = new XMLHttpRequest(); var params = "name="+$('#name').val() var url = "register.php"; ajaxReq.open("POST", url, true); ajaxReq.setRequestHeader("Content-ty

我想知道为什么这段代码可以在firefox、chrome和IE10上运行,而不能在IE9上运行

var ajaxReq = new XMLHttpRequest();
var params = "name="+$('#name').val()
var url = "register.php";

ajaxReq.open("POST", url, true);                               

ajaxReq.setRequestHeader("Content-type", "application/x-www-form-urlencoded");    
ajaxReq.setRequestHeader("Content-length",params.length);
ajaxReq.setRequestHeader("Connection", "close"); 

ajaxReq.onreadystatechange = function(){
 if(ajaxReq.readyState == 4 && ajaxReq.status == 200) 
{alert(ajaxReq.response)} //<---this results undefined

 }

它应该是
.response
而不是
.responseText
.responseXML
-请参阅。在您的情况下,我假设更改为
alert(ajaxReq.responseText)将修复它

响应
不是XMLHttpRequest对象的属性,这就是JavaScript引擎抛出
未定义
错误的原因

根据上述文件:

responseText将包含一致用户代理以纯文本形式给出的服务器响应


因此,除了
XML
(其中包括
JSON
)之外,对所有纯文本格式都使用
responseText
,因为这是纯文本格式。

而不是
。response
,它应该是
。responseText
。responseXML
-哇,它工作了!但是如果我将接收JSON编码对象,我可以使用responseText吗?是的,因为
JSON
是纯文本格式。我添加了一个较长的描述作为答案。
header('Content-Type: text/json');
echo 'response';
exit;