我想知道这个代码在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
}
php文件中包含的代码本身并不重要,因为为了做一些证明,我把它租得很少:
header('Content-Type: text/json');
echo 'response';
exit;
答案 0 :(得分:5)
而不是.response
,应该是.responseText
或.responseXML
- 请参阅HTTP response。在您的情况下,我认为更改为alert(ajaxReq.responseText);
将解决此问题。
response
不是XMLHttpRequest对象的属性,这就是JavaScript引擎抛出undefined
错误的原因。
从上述文件:
responseText将包含符合用户代理的纯文本服务器响应
因此responseText
除了XML
(包括JSON
之外)的纯文本中使用{{1}},因为这是纯文本格式。