我在home.php
中编写了以下代码。点击提交按钮调用login()
函数。
function login()
{
try{
xmlHttp=new XMLHttpRequest();
}catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e3){
alert('Sorry ! AJAX not supported');
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4&&xmlHttp.status==200){
alert(xmlHttp.responseText);
}
}
xmlHttp.open('POST','ajax_call.php',true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
xmlHttp.send(document.getElementById('username').value,document.getElementById('password').value);
}
</script>
我的ajax_call.php脚本只是
<?
echo 'hello';
?>
我没有收到提醒Hello
。为什么?
[我试图提醒readyState
和status
xmlHttp.onreadystatechange=function(){
alert(xmlHttp.readyState+" "+xmlHttp.status);
if(xmlHttp.readyState==4&&xmlHttp.status==200){
alert(xmlHttp.responseText);
}
}
并按顺序进行了跟踪
1 0
2 200
3 200
4 200
hello
1 0
hello
答案 0 :(得分:0)
login()
{
try{
xmlHttp=new XMLHttpRequest();
}catch(e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch(e2){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e3){
alert('Sorry ! AJAX not supported');Or
}
}
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4&&xmlHttp.status==200){
alert(xmlHttp.responseText);
}
}
xmlHttp.open('POST','ajax_call.php',true);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");/* Anil Remove ;*/
xmlHttp.send('username'.value,'password'.value);/* try static username and password*/
}
</script>[ajax call][1]
[1]: http://www.w3schools.com/ajax/tryit.asp?filename=tryajax_post2
答案 1 :(得分:0)
最后一行应该是
xmlHttp.send();
但看起来你想要做一些身份验证...如果是基本身份验证,那么值应该放在标题中,或者如果它是服务器身份验证的一部分,则取决于你的实现...你能解释一下为什么您在xmlHttp.send()调用中有用户名/密码吗?
答案 2 :(得分:0)
只是一个想法:
.open的第三个参数告诉xmlHttp触发onreadystatechange (这就是为什么它被设置为真)
然而,如果那不是错误: