POST到外部URL(webhook),但重定向到不同的URL

时间:2016-10-20 23:44:01

标签: javascript jquery forms post get

在我的表单中,我将数据发布到外部网址,这是一个webhook。用户提交并将数据传递给webhook后,我想将用户重定向到确认页面。

下面的代码存在问题。当用户提交表单时,jQuery会将用户带到确认页面,但表单数据不会触发webhook(不收集数据)。有人可以帮助解决我出错的地方吗?

这是我的代码:

  

HTML

<form action="https://externalurl.com/webhook" method="POST">
     <input id="email" name="email">
     <input id="firstname" name="firstname">
     <input id="lastname" name="lastname">
     <button type="submit">Submit</button>
</form>
  

JQuery的

    $('form').submit(function() {
    $.ajax({
        type: 'POST',
        url: $(this).attr('action'),
        dataType: 'json',
        success: function(json) {
           window.location.href = "https://www.mypage.com/confirmation";
          }
    });
    return false;
});

提前致谢

3 个答案:

答案 0 :(得分:0)

表单中是否有提交按钮?

答案 1 :(得分:0)

您没有向webhook发送任何数据。尝试...

$('form').submit(function() {
$.ajax({
    type: 'POST',
    url: $(this).attr('action'),
    data: {
        "email": document.getElementById('email').value
        // get other fields
    },
    dataType: 'json',
    success: function(json) {
      }
});
return false;
});

或者如果你的实际形式更大,那么有办法将整个表格的数据序列化为json。

编辑: 如果您想调试ajax调用,那么chrome的开发人员工具的网络选项卡将让您准确了解您要发送到服务器的内容及其响应。

答案 2 :(得分:0)

如果网站与webhook不在同一个域中,则必须在webhook服务器中配置CORS策略或使用jsonp等替代方案。