【问题标题】:JavaScript no redirect on postJavaScript 在帖子上没有重定向
【发布时间】:2014-03-09 15:50:32
【问题描述】:

我在看这个POST,我想知道,有没有办法让这个功能正常工作,但又不重定向到不同的页面?

function post_to_url(path, params, method) {
    method = method || "post"; // Set method to post by default if not specified.

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for(var key in params) {
        if(params.hasOwnProperty(key)) {
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", key);
            hiddenField.setAttribute("value", params[key]);

            form.appendChild(hiddenField);
         }
    }

    document.body.appendChild(form);
    form.submit();
}

我的问题出在form.setAttribute("action", path); 这一行,它发送到了另一个站点

【问题讨论】:

  • 只需进行 AJAX 调用即可发送表单数据。
  • 你能再解释一下吗?
  • 好的,我明白了,谢谢。最后一件事是它们之间有什么区别
  • 了解 AJAX 的工作原理,一切都会变得清晰。基本上,它是一个异步调用(它发生在页面的“后面”),但您可以等待它的响应并根据该响应相应地修改您的页面。它还有更多内容,但这会让你开始。见这里:developer.mozilla.org/en/docs/AJAX

标签: javascript url post attributes


【解决方案1】:

您可以使用 ajax 发送请求。使用 jQuery,它可以看起来像这样。

$.post( "test.php", $( "#testform" ).serialize() );

【讨论】:

  • 你的回答有点短。此外,不鼓励在答案中链接到外部站点,因为该链接可能会在将来的某个时间断开。请使用相关代码扩展您的答案。
【解决方案2】:

在 cmets 中修复后,这里是答案版本。

您需要进行发送表单数据的 AJAX 调用,而不是使用表单。 了解 AJAX 的工作原理,一切都会变得清晰。基本上,这是一个异步调用(它发生在页面“后面”),但好处是您可以等待它的响应并根据该响应相应地修改您的页面(例如,显示“谢谢”消息,或者错误等...)。

还有更多内容,但这将帮助您入门。见这里:https://developer.mozilla.org/en/docs/AJAX

此外,网上有数以百万计的示例和教程,所以既然您知道自己需要做什么,就不会遇到任何问题。

【讨论】:

    【解决方案3】:

    我认为 iframe 可能会对您有所帮助。试用:)

    【讨论】:

      猜你喜欢
      • 2021-01-05
      • 1970-01-01
      • 2017-10-05
      • 1970-01-01
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 2015-07-30
      相关资源
      最近更新 更多