2012-12-06 85 views
-2

我正在做类似这样的事情,我通过AJAX发布一个变量给php脚本。它实际上进入我的PHP和运行我的回声,但它不打印任何东西,当我打印$ _POST数组。通过AJAX POST传递信息

function ajaxFunction(data){ 
var ajaxRequest; // The variable that makes Ajax possible! 

try{ 
    // Opera 8.0+, Firefox, Safari 
    ajaxRequest = new XMLHttpRequest(); 
} catch (e){ 
    // Internet Explorer Browsers 
    try{ 
     ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
     try{ 
      ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (e){ 
      // Something went wrong 
      alert("Your browser broke!"); 
      return false; 
     } 
    } 
} 

ajaxRequest.open("POST", "process.php", true); 
ajaxRequest.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); 
ajaxRequest.setRequestHeader("Content-length", data.length); 
ajaxRequest.setRequestHeader("Connection", "close"); 
// Create a function that will receive data sent from the server 
ajaxRequest.onreadystatechange = function(){ 
    if(ajaxRequest.readyState == 4){ 
     //var data = array(); 
     //data = document.forms["order_form3"].getElementsByTagName("input"); 
    } 
} 

ajaxRequest.send(data); 

}

+2

我不是经典的AJAX的好,但是,'readyState的== 4'是请求发送成功后,IIRC。那么,你的'ajaxRequest.send(data);'行应该在响应行之前? – TheDeadLike

+0

我没有看到任何数据发送! – pregmatch

回答

1

我建议使用像萤火虫,甚至内置的Chrome或Firefox的功能插件,看看已发送以及已在您的文章的请求被接受。 ajax响应不会打印在屏幕上的某处,因为您可能从“正常”的http POST请求到一个php页面来了解它。它将作为你的ajaxRequest对象的一部分返回,你可以从那里获取它来使用Javascript来“打印”它。

0

似乎你需要编码你的参数,调用你的函数确实提交你的数据,但是他们没有绑定到另一端的变量。我并不感到意外,PHP会抛弃你的数据。

在这里看到:AJAX XMLHttpRequest POST