2012-09-25 163 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);  
} 
相關問題