【问题标题】:Javascript - redirect to a page with POST dataJavascript - 重定向到带有 POST 数据的页面
【发布时间】:2013-05-27 13:41:13
【问题描述】:

我有一个页面,用户可以在数据库中搜索(全部在 AJAX 中)并选择页面上不同类型的数据。他什么时候选择它们,我需要使用 POST 数据将用户重定向到另一个页面(尽管仍在我的网站上)。 用户将到达的新页面需要该 POST 数据,并且用户需要转到新页面。

我读过我可以在加载页面之前创建一个表单,然后在我想要重定向时简单地提交它,但问题是我没有预先包含的数据。

我尝试过这样做:

document.write('<form id="reviseCombi" method="post" action="otherPage.php"><input name="input1" type="hidden" value="ok" /><input type="input2" type="hidden" value="'+ mots +'" /></form>');
f=document.getElementById('reviseCombi');
if(f){
    f.submit();
}

但是当我检查篡改数据时,第二个输入没有到达新页面。它首先重新加载实际页面,这也很奇怪。

有没有更好的方法?

编辑:我得到了输入部分的答案。该页面现在获得了两个输入。但是:它仍然会重新加载一个仅包含表单(以及 html、正文等)的空白页面,然后它会重定向。知道如何直接拥有它吗?

抱歉,如果不是很清楚,很难解释。我会回答任何 cmets 以更好地解释它。 非常感谢。

【问题讨论】:

  • 试试看下面的问题是否有你需要的答案:stackoverflow.com/questions/9713058/… 关键字是XMLHttpRequest和POST。您使用前者通过 JavaScript 向 Web 服务器发起 POST 请求。
  • "但是:它仍然会重新加载一个仅包含 (和 , 等) 的空白页面,然后它会重定向。"如果你现在在编辑中写了一些标签,如 等,它会因为 stackoverflow 格式而消失......留下像这样的空格 显示它,以便我们阅读和帮助:)
  • 是的,我只是把 拿走了;-)

标签: javascript ajax post redirect


【解决方案1】:

问:“但是第二个输入没有到达新页面”

A:您的第二个输入没有名称! (type="input2" 改成 name="input2")

问:“它首先重新加载实际页面,这也很奇怪。”

答:如果您使用的是 firefox,并且在 和 标签之前回显数据,则会自动刷新。如果要调试,请在

中回显数据

A2: 奇怪的重新加载可能是因为您在 之外或可能在 内执行该表单的 document.write ... 如果是这种情况,为什么不这样做:

html

<div id="myformcontainer"></div>

js

function CreateAFormInsideMyDivAndSubmitIt(mots)
{
    var mydiv = document.getElementById('myformcontainer').innerHTML = '<form id="reviseCombi" method="post" action="otherPage.php"><input name="input1" type="hidden" value="ok" /><input name="input2" type="hidden" value="'+ mots +'" /></form>';
    f=document.getElementById('reviseCombi');
    if(f){
    f.submit();
    }
}

jsfiddle:http://jsfiddle.net/MDx8H/1/(提醒而不是提交)

【讨论】:

  • 哇,我怎么错过了第一个。我故意在这里改了名字,但我真的没有看到它是“类型”。为此干杯。但是对于第二个:我已经在 里面了。
  • 大声笑第一个很常见不要感觉不好:) 我猜对了第二个吗?前段时间我在调试时,它让我发疯了,在一次页面浏览中,我在我的数据库中获得了 2 次插入......这让我彻底发疯了!
  • 哈哈谢谢!好吧,对于第二个,我在正文中...它重新加载了一个空白页面,仅包含 ..跨度>
  • 完美运行! (第二个解决方案)。太棒了,非常感谢。
猜你喜欢
  • 2012-09-19
  • 1970-01-01
  • 2016-09-18
  • 2023-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-06
  • 1970-01-01
相关资源
最近更新 更多