2012-09-25 162 views
0

我的表单通过ajax管理的帖子发出请求。但是,它似乎并没有工作。我知道php文件的工作原理是我在中间不使用ajax的情况下尝试了它。通过ajax的发布请求似乎无法正常工作

这是我的Ajax请求:

function checkOut(params) { 
    var urlString = params; 
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } else {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      document.getElementById("test").innerHTML=xmlhttp.responseText; 
     } 
     //Setup for post submission 
     xmlhttp.open("POST","mockcheckout.php",true); 
     xmlhttp.setRequestHeader("Content-length", params.length); 
     xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 

     xmlhttp.send(urlString); 

    } 

} 

任何帮助表示赞赏。

+0

我建议您使用jQuery并转储该ActiveX代码。 – Nelson

+0

“*似乎没有工作*”是什么意思?请描述任何错误(或者您的错误控制台是否记录了一些错误?) – Bergi

+0

我同意。但在我这样做之前,我想要更加牢固地掌握jquery - 我知道这很容易。或者,如果你能给我一个如何将上面的ajax翻译成jquery的例子,我可以使用它。 – Mlagma

回答

2

看起来你有代码块的问题。 .open,.send应该在onreadystatechange句柄范围之外。

function checkOut(params) { 
    var urlString = params; 
    if (window.XMLHttpRequest) 
    {// code for IE7+, Firefox, Chrome, Opera, Safari 
     xmlhttp=new XMLHttpRequest(); 
    } else {// code for IE6, IE5 
     xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 

    xmlhttp.onreadystatechange=function() { 
     if (xmlhttp.readyState==4 && xmlhttp.status==200) { 
      document.getElementById("test").innerHTML=xmlhttp.responseText; 
     } 
    } 
    //Setup for post submission 
    xmlhttp.open("POST","mockcheckout.php",true); 
    xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
    xmlhttp.send(urlString);  
} 
相关问题