【问题标题】:Javascript redirect after POST, Submit analogPOST 后 Javascript 重定向,提交模拟
【发布时间】:2015-06-19 08:55:49
【问题描述】:

我在页面上没有表单,点击按钮我需要转到 seconpage.asp 并发布请求的 POST 数据

$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

如果它像完整的提交模拟一样在 Post 之后加载 Post url 会很好,但只有当页面上有表单和按钮提交时它才不会重定向到此页面。 如果重定向成功,则页面加载默认没有发布数据

所以如果我发送 POST

$.ajax({
  type: "seconpage.asp",
  url: url,
  data: "Hello It Works",
  success: function(){
    location.href="seconpage.asp";
  },
  dataType: dataType
});

然后加载seconpage.asp 我需要得到“Hello It Works”,但我什么也没得到 因为seconpage.asp 只包含

<%=Request.Form%>

所以这不是 Submit 模拟,因为 Submit 加载带有 Post 数据的页面,而不是重定向加载没有 Post 数据的新页面

【问题讨论】:

  • Ajax POST 成功后使用 window.location.href="seconpage.asp"。

标签: javascript jquery post


【解决方案1】:
$.ajax({
  type: "POST",
  url: url,
  data: data,
  success: function(){
      location.href="target-page.asp";
  },
  dataType: dataType
});

请记住,如果您使用的是类型提交按钮,则必须阻止默认行为或仅返回 false:

$('#form').on('submit', function(e){
    e.preventDefault(); // you can use this
    $.ajax({ /*...*/ });
    return false; // or this
});

编辑

看到您的帖子更新后,我看到了问题。要传递数据,您需要通过变量传递数据:

$.ajax({
  type: "POST",
  url: url,
  data: { mydata: "Hello It Works" },
  success: function(){
      location.href="target-page.asp";
  },
  dataType: dataType
});

然后,在您的控制器或服务器端方法中,管理接收到的数据。

Check jQuery Ajax Docs 了解有关 ajax 选项以及如何进行的更多信息。

【讨论】:

  • 我很伤心location.href="target-page.asp"; 加载页面默认值而没有发布数据
  • 也许我们需要查看您所有的相关代码,因为如果您将location.href 行放在ajax 成功函数中,它将触发after ajax 发布数据(通常需要)。
  • 请看更新问题
  • 也许使用 ajax processData 选项并将其设置为 false 您可以直接发送字符串。它通常用于发送DOMDocument 或其他未处理数据。我不得不说我从来没有使用过它,所以我不确定它是如何工作的,或者它在这里是否有效。
猜你喜欢
  • 1970-01-01
  • 2014-04-24
  • 1970-01-01
  • 1970-01-01
  • 2020-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-30
相关资源
最近更新 更多