我对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”字符串?所以,我很困惑。怎么会在那里,但不是在同一时间?
答案 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提出了服务器端希望得到的请求。当您直接在浏览器中导航到该页面时,它是错误的请求类型,因此您会看到错误的响应。