Ajax post 至 PHP 无效

Ajax post to PHP not working

嗨,我在对 php 文件执行 ajax post 时遇到问题,但在 php 文件中它是空的

JS
google.maps.event.addListener(marker, 'click', function(marker, i) {
return function() {

     var rid = locations[i][4]; //get id to varible
     console.log(rid);
     $.ajax({
            url: uri+'/helper.php',
            type: 'post',
            data: {'referens': rid},
            success: function(data){
                console.log(rid);
                window.location = uri+'/helper.php';
            },error: function(data){
                alert('error'); 
            }
        });
    }
}(marker, i));

和我的helper.php

<?php 
$referens = $_POST['referens']; 
echo $referens;
echo 1;
?>

helper.php 中的输出只有 1 而不是我的引用 post

如果我想在与 location.reload();

相同的文件中像这样使用它怎么办
 success: function(data){
                console.log(data);
                location.reload();
            },error: function(data){
                alert('error'); 
            }
        });
    }
}(marker, i));

</script>
<?php include_once('helper.php');
 var_dump($referens); ?>

和helper.php

<?php 
   $referens = $_REQUEST['referens']; 
   echo $referens;
   echo 1;

   ?>

您的代码看起来不错。

您正在打印错误的变量。

改变

success: function(data){
  console.log(rid);
  window.location = uri+'/helper.php';
}

success: function(data){
  console.log(data); // Here you are getting return in data not as rid
  window.location = uri+'/helper.php?rid='+rid; // See, pass rid here.
}

在helper.php

<?php 
$referens = $_REQUEST['referens']; 
echo $referens;
echo 1;
?>

根据您对其他答案和您的 post 的评论,我想提一下:

console.log(rid);
window.location = uri+'/helper.php';

在你的成功回调中 rid91 因为它应该是根据你的评论,这是绝对正确的,因为在 php 文件中你试图访问 POST 变种。

但是当这一行执行时 window.location = uri+'/helper.php'; 然后位置改变并且它发出 GET 请求,所以它失败了。

要在 PHP 结束时获取此变量,您应该尝试使用 $_REQUEST('referens') 并且必须像这样使用 url 发送它:

window.location = uri+'/helper.php?referens=' + rid;

在你的 php 端:

<?php 
    $referens = $_REQUEST['referens']; // <---change here.
    echo $referens;
    echo 1;
?>

来自文档 [$_REQUEST()]:

一个关联数组,默认包含 $_GET, $_POST$_COOKIE 的内容。