2016-08-09 31 views
0

我对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

'var_dump($ _ POST,$ _SERVER ['REQUEST_METHOD'])''。确保没有重定向或任何其他内容,并查看到达服务器的内容。 –

+0

put'; 'var data = {“edit”:“post is here”} – stweb

+0

@MarcB嘿,我做到了,我得到了数组(0){}字符串(3)“GET”这是怎么回事? –

回答

0

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

我的var_dump($ _ POST [ '编辑'])与我收到NULL

您措辞你的问题的方式,它听起来像你没有看到的是空在console.log(),这是什么发生,如果你有var_dump并用ajax调用它。相反,这听起来像是直接在浏览器中加载weekly_deals.php,并且由于这是一个GET请求,而不是POST请求,并且没有参数被传递,所以它会回到空。

然而,在执行console.log,我看到值“后在这里”串

权,因为JavaScript使用POST方法进行的HTTP请求,并传递参数。


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

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

相关问题