成功发布后无法访问$ _POST数据

时间:2014-07-23 18:13:52

标签: javascript php jquery html ajax

我有以下 Ajax请求

function send(){
//selected Pictures: some int array
var jsonArray = JSON.stringify(selectedPictures);

var request;
request = $.ajax({
url: "targetPage.php",
type: "POST",
data: {data: jsonArray},
cache: false
});}

我通过

提交
href="targetPage.php" onclick="send();"

我想在HTML文件或PHP脚本中访问该数组,并将其包含在HTML中。 当我使用浏览器的开发工具检查HTTP流量时,我发现POST实际上工作正常并且发送了正确的数组数据,但是当我想使用访问数据时:

if(isset($_POST['data'])){
  $data = json_decode(stripslashes($_POST['data']));
}

没有任何反应,因为isset返回false。似乎存在某种我缺少的运行时或执行顺序问题。

2 个答案:

答案 0 :(得分:2)

问题是您的href,它会让您的浏览器导航到该页面而不发送信息,因此您可以删除它;因为你是通过ajax电话拨打电话。

所以:

<a href="#" onclick="send();"></a>

如果您希望在调用后重定向页面,则应将成功函数添加到ajax调用中:

function send(){
    //selected Pictures: some int array
    var jsonArray = JSON.stringify(selectedPictures);

    var request;
    request = $.ajax({
        url: "targetPage.php",
        type: "POST",
        data: {data: jsonArray},
        cache: false,
        success: function() { location.href = "targetPage.php"; }
     });
}

答案 1 :(得分:0)

如果你想发布并重新发送你可以这样做:

<form method="post" action="http://localhost/DLFin/welcome.php" id="my_form">
    <input type="hidden" id="name" name="name">
</form> 

<强> SCRIPT:

 function send(){
        //selected Pictures: some int array
        var jsonArray = JSON.stringify(selectedPictures);

        var request;
        request = $.ajax({
            url: "targetPage.php",
            type: "POST",
            data: {data: jsonArray},
            cache: false,
            success: function() {  $('#name').val('sajal');
        $('#my_form').submit(); }
         });
    }