我如何发布jQuery数据并在不通过URL作为变量(例如test.php?data=xxx)传递的情况下,在同一文件上接收。

例如,这是我可以在控制台日志中看到的response.data。

function (response) {
    console.log(response.data);
},


我想发布该数据并在同一文件上接收。我尝试了以下方法:

function (response) {
    //console.log(response.data);
    $.post(window.location.href, {json_data: response.data});
},


但是当我在同一文件的正文中打印时

print_r($_POST);


它不显示任何内容。

最佳答案

确保response.data为Type:PlainObject或String。在PlainObjects上查看更多信息

更新

Here is a video that describes what this code sample does.

代码样例

<?php
  if (empty($_POST)) :
    ?>
      Nothing was posted, please click there \/<br><br>
    <?php
  else :
    echo 'You posted: '.print_r($_POST['json_data'], 1).'<br><br>';
  endif;
?>

<a href="javascript:" onclick="fake_simple_response('simple string');">click here (simple string)</a><br>
<a href="javascript:" onclick="fake_simple_response({cat:'meow', dog:'woof'});">click here (plain object)</a>


<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script>
function fake_simple_response (response) {
    console.log(response);
    $.post(window.location.href, {json_data: response});
}
</script>

10-05 23:36