Php XMLHttpRequest返回在IE9中始终未定义
我想知道为什么这段代码可以在firefox、chrome和IE10上运行,而不能在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
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;