非 AJAX jQuery POST 请求

新手上路,请多包涵

我正在尝试使用 jQuery POST 函数,但它正在以 AJAX 样式处理请求。我的意思是它实际上并没有转到我告诉它去的页面。

 $("#see_comments").click(function() {
    $.post(
        "comments.php",
        {aid: imgnum},
        function (data) {

        }
    );
});

这个函数应该去 comments.php 页面,手头有援助价值。它发布正常但没有重定向到 comments.php


@Doug Neiner 澄清:

  1. 我有 15 个链接(图片)。我单击一个链接,它会加载我的 JavaScript。脚本知道什么 imgnum 我打开了。这个 imgnum 我想要在 comments.php 中。我必须使用这个 JavaScript,没有其他方法可以做到这一点。 JavaScript 是强制性的

  2. 您的方法成功发布了援助值。但是在 comments.php 中,当我尝试回显该值时,它什么也不显示。

  3. 我正在使用萤火虫。在控制台中,它显示了我在步骤(2)中成功执行的 echo REQUEST。

原文由 amit 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 360
2 个回答

我知道你想做什么,但这不是你想要的。

首先,除非您要 更改 服务器上的数据,否则不要使用 POST 请求。只是有 #see_comments 是一个正常的 <a href='/comments.php?aid=1'>...

如果您 必须 使用 POST ,那么执行此操作以使页面跟随您的呼叫:

 $("#see_comments").click(function() {
  $('<form action="comments.php" method="POST">' +
    '<input type="hidden" name="aid" value="' + imgnum + '">' +
    '</form>').submit();
});

这实际上是如何工作的。

首先 $.post 只是 一种 AJAX 方法,不能用于执行传统的 form 像您描述的那样提交。因此,为了能够发布一个值 导航到新页面,我们需要模拟一个 form 发布。

所以流程如下:

  1. 你点击图片,你的 JS 代码得到 imgnum
  2. 接下来,有人点击 #see_comments
  3. 我们创建一个临时的 form 并将 imgnum 值作为隐藏字段
  4. 我们提交该表单,该表单发布值 加载 comments.php 页面
  5. 您的 comments.php 页面将有权访问发布的变量(即在 PHP 中它将是 $_POST['aid']

原文由 Doug Neiner 发布,翻译遵循 CC BY-SA 2.5 许可协议

$("#see_comments").click(function () {
    $('<form action="comments.php" method="POST"/>')
        .append($('<input type="hidden" name="aid">').val(imgnum))
        .appendTo($(document.body)) //it has to be added somewhere into the <body>
        .submit();
});

原文由 devside 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题