首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >非AJAX jQuery POST请求

非AJAX jQuery POST请求
EN

Stack Overflow用户
提问于 2010-01-13 13:45:46
回答 6查看 82.3K关注 0票数 78

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

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

        }
    );
});

此函数应转到comments.php页面,其中包含AID值。它发布得很好,但没有重定向到comments.php。

@Doug Neiner澄清:

  1. I有15个链接(图片)。我点击一个链接,它就会加载我的JavaScript。脚本知道我打开了什么imgnum。这是我想要在comments.php中使用的imgnum。我必须使用这个JavaScript,没有其他方法可以做到这一点。JavaScript是必需的,
  2. 你的方法成功地发布了AID值。但是在comments.php中,当我尝试回显该值时,它什么也没有显示。
  3. 我使用的是Firebug。在控制台中,它显示了我在步骤(2) successfully.

中发出的回应请求

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-01-13 13:54:53

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

首先,除非您要更改服务器上的数据,否则不要使用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提交。因此,为了能够post一个值并导航到新页面,我们需要模拟一个form post。

因此,流程如下:

当您单击图像时,您的JS代码将获得某人单击的imgnum

  • Next,#see_comments

  • We创建一个临时form,其中包含PHP值作为隐藏字段

  • 我们提交该表单,该表单将发布该值并加载comments.php页面

您的<

  • >D25>页面将能够访问已发布的变量(即,在

中它将是

票数 132
EN

Stack Overflow用户

发布于 2012-09-18 01:27:52

$("#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();
});
票数 58
EN

Stack Overflow用户

发布于 2013-10-23 00:44:21

虽然Doug Neiner的解决方案不仅是正确的,而且是解释最全面的,但它有一个大问题:它似乎只适用于Chrome。

我犹豫了一段时间,试图确定一个解决办法,然后偶然发现了nopnop77的第二个答案。唯一的区别是额外的代码appendTo($(document.body))。然后我在火狐中测试了它,它工作得很棒。显然,Firefox和IE需要在DOM主体的某个地方附加临时表单。

我不得不为一个Symfony2项目做这个实现,因为.twig模板中的路径生成器只能使用GET参数,而处理查询字符串破坏了应用程序的安全性。(顺便说一句,如果有人知道如何让.twig模板调用带有POST参数的页面,请在评论中告诉我)。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2054705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档