XMLHttpRequest在IE9中返回始终未定义

Son*_*nia 4 php ajax jquery internet-explorer

我想知道这个代码在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

 }
Run Code Online (Sandbox Code Playgroud)

包含在php文件中的代码本身并不重要,因为为了做一些证明我租用它非常小:

header('Content-Type: text/json');
echo 'response';
exit;
Run Code Online (Sandbox Code Playgroud)

and*_*dyb 5

相反的.response,它应该是.responseText.responseXML-见HTTP响应.在你的情况下,我认为改变以alert(ajaxReq.responseText);解决它.

response不是XMLHttpRequest对象的属性,这就是JavaScript引擎抛出undefined错误的原因.

从上述文件:

responseText将包含符合用户代理的纯文本服务器响应

因此responseText除了使用纯文本之外的所有内容XML,其中包括JSON,因为它是纯文本格式.