无法检索POST数据
我无法使基本ajax POST正常工作。在我无法使用jquery .click等问题之后,我切换到了onclick。只是想知道我是在做一些明显的错误还是什么。如果没有明显的错误,那可能是apache的东西?这里没有太多的经验,所以任何帮助,将不胜感激。无法检索POST数据
这里是一个功能的链接:
<a href="markerpages.php" onclick="postData()">click this for php page</a>
下面是函数:
function postData() {
console.log("outside ajax is working");
$.ajax({
type: "POST",
url: "/markerpages.php",
data: {
source1: "some text",
source2: "some text 2"},
success: function (data) {
console.log("inside ajax is working");
},
error: function() {
console.log("ajax post failed")
}
});
这里是我有我的PHP网页:
<?php
if (isset($_POST['source1']))
$src1 = $_POST['source1'];
else $src1 = "post data not obtained";
echo $src1;
echo "<pre>" . print_r($_REQUEST, 1) . "</pre>";
print_r($_POST);
var_dump($_POST);
var_dump($_POST);die;
?>
我不会返回萤火虫中的错误,并且我得到我放在ajax和外部的日志语句,只是没有获得空数组PHP页面。 真诚感谢您的任何帮助。
您正在使用锚标记将用户发送到页面。如果你这样做,所有的发布数据都会丢失。您需要#
更换URL的锚标记,以确保用户停留在页面上:
<a href="#" onclick="postData()">click this for php page</a>
首先,你应该把一个return false;
在js函数,这样做不会有任何重定向,
在开发者网络中检查你的请求,如果URL是正确的,并且你在ajax post期间检索到任何错误。
非常感谢。我没有看过这么多。帖子请求被取消。 – ambe5950 2014-10-17 08:19:08
点击链接时,postData()
正在被调用,但浏览器正在载入您的<a href>
中指定的URL。你可以做的三种可能的事情之一:event.preventDefault()
:
你POSTDATA()函数的顶部添加以下行。这将停止原始事件点击操作,并且是首选方法。
更改您的
onclick
属性并添加return false
以防止URL单击行为。例如:onclick="postData(); return false;
将
<a href="/markerpages.php">
更改为<a href="#">
。但这不是一个好方法,因为该页面的URL将更改为mypage.htm#
。
另一个有用的调试提示:您可以输出data
变量(从你的PHP脚本返回的值),就像这样:console.log(data);
。
而且因为你似乎是手建立一个形式,最终会从服务器返回到前端传递值,我建议在看这篇文章:Pass a PHP Array to Javascript as JSON using AJAX and json_encode()
你确定你有正确的PHP的网址是什么? 'url:“/markerpages.php”,' – Ghost 2014-10-17 08:03:51
最后一个脚本的输出是什么?它打印什么? – Jerodev 2014-10-17 08:04:00
在postData函数中,url变量是否被定义? – 2014-10-17 08:04:31