$ .post显示在console.log()中,但无法访问我的php页面上的变量

时间:2016-08-09 18:50:44

标签: php jquery

我对jquery很缺乏经验。我的代码是

function edit(uID){ 
  var php = "body/weekly_deals.php";
  var data = {"edit" : "post is here"}
  $.post(php, data,function(response){
    console.log(response);
    });
 }

这是在WeeklyDeal.php上定义的。现在,在我的body / weekly_deals.php页面上,我var_dump($ _ POST ['edit'])并且我得到NULL,但是在console.log中,我看到值“post is here”字符串?所以,我很困惑。怎么会在那里,但不是在同一时间?

1 个答案:

答案 0 :(得分:0)

我怀疑你误解了它是如何工作的。

  

我var_dump($ _ POST ['edit'])我得到NULL

你提出问题的方式,听起来你在console.log()中没有看到空,如果你有var_dump并且被叫{em> 那么它与ajax。相反,它听起来像是在浏览器中直接加载 weekly_deals.php ,因为这是一个GET请求,而不是POST请求,并且没有传递参数,所以它返回空。

  

但是在console.log中,我看到的值是“post is here”字符串

是的,因为javascript正在使用POST方法发送HTTP请求并传递参数。

我认为您可能会对HTTP请求的工作方式感到困惑。为了打破它,你有一个资源作为一个URI - 你知道这是一个网址。您可以通过几种不同的方式提出问题 - GET,POST,PUT等。当浏览到页面时,Web浏览器会向资源发出GET请求。 Web服务器返回响应并呈现它。

当您发出AJAX请求时,就请求生命周期而言,您正在做一些非常相似的事情。发出请求时,服务器会呈现响应并将其发回。这就是为什么你的console.log()具有你期望看到的东西 - 因为AJAX提出了服务器端希望得到的请求。当您直接在浏览器中导航到该页面时,它是错误的请求类型,因此您会看到错误的响应。