为什么这不起作用?
function login(){
if(window.XMLHttpRequest){
ajax=new XMLHttpRequest();
}else if(window.ActiveXObject){
ajax=new ActiveXObject("Microsoft.XMLHTTP");
}
ajax.onreadystatechange=validatelogin;
params='name='+escape(document.getElementById('name').value)+'&pass='+escape(document.getElementById('pass').value);
/*IT FAILS HERE*/
ajax.setRequestHeader("Content-type","application/x-www-form-urlencoded");
ajax.setRequestHeader("Content-length",params.length);
ajax.setRequestHeader("Connection","close");
ajax.open('POST','login.php?login=true',true);
ajax.send(params);
}
function validatelogin(){
if(ajax.readyState===4){
if(ajax.status===200){
alert(ajax.responseText);
exit(0);
}else{
alert("FAIL!!!!!");
}
}
}
Firefox错误控制器抱怨
错误:组件返回失败 代码:0x80004005(NS_ERROR_FAILURE) [nsIXMLHttpRequest.setRequestHeader]
答案 0 :(得分:4)
曾经发生在我身上。
在调用“setRequestHeader”
之前,您必须调用“open”方法答案 1 :(得分:2)
如果它有用,你编写的所有代码都可以用jQuery脚本的一小部分代替:
$(document).ready(function() {
$.post('login.php?login=true', {name: $('#name'), pass: $('#pass')},
function(response) {
alert(response);
}
);
});
请参阅jQuery.post