【问题标题】:Ajax Call Function - Fire Facebook Pixel Conditionally & Redirect To Thank You PageAjax 调用函数 - 有条件地触发 Facebook 像素并重定向到感谢页面
【发布时间】:2020-07-12 10:38:25
【问题描述】:

我很难让表单上的这部分 Ajax 调用请求正常工作。一个基本的重定向功能一直在工作,但是我正在尝试更新该功能,以根据我在表单中的下拉列表中的用户输入值有条件地触发 facebook 像素。下面是相关的html和ajax调用函数:

这是 HTML 下拉菜单

 <label for="homeowner">Are you a homeowner?</label>
    <select id="rentorown" name="homeowner" required >
    <option value=""></option>
      <option value="own">Yes, I own my home.</option>
      <option value="rent">No, I rent.</option>
    </select>    

这里是ajax调用

$('#myForm').submit(function(e){
    e.preventDefault();
    $.ajax({
        url:'https://hooks.zapier.com/hooks/catch',
        type:'post',
        data:$('#myForm').serialize(),
        success:function fbpixel(){
         var own = document.getElementById("rentorown").value;   

  if (own ==="own") {
 fbq('track', 'Lead'); 
 window.top.location = "https://www.sampleurl.com/thankyou";
} else {
  fbq('track', 'AddToCart');
  window.top.location = "https://www.sampleurl.com/thankyou";
}

        }
    });
}); 

上述调用函数正确地将潜在客户提交数据发布到 zapier,但是像素没有条件触发,也没有重定向页面。

您对如何使用 ajax 调用函数正确完成上述操作有什么建议吗?

谢谢!

【问题讨论】:

    标签: javascript jquery ajax facebook zapier


    【解决方案1】:

    从您的代码中删除fbpixel,它应该可以工作:

    success: function () {
      // your function code
    }
    

    【讨论】:

      【解决方案2】:

      您可以尝试像这样承诺 Ajax 调用:

      function afterAjax() {
        return new Promise((resolve, reject) => {
          $('#myForm').submit(function(e){
            e.preventDefault();
            $.ajax({
              url: 'https://hooks.zapier.com/hooks/catch',
              type: 'post',
              data: $('#myForm').serialize(),
              success: function(data) {
                resolve(data)
              },
              error: function(error) {
                reject(error)
              }
          });
      }); 
      
      
      afterAjax().then(data => {
      
        var own = document.getElementById("rentorown").value;   
      
        if (own ==="own") {
          fbq('track', 'Lead'); 
          window.top.location = "https://www.sampleurl.com/thankyou";
        } else {
          fbq('track', 'AddToCart');
          window.top.location = "https://www.sampleurl.com/thankyou";
        }
      
      }).catch(error => {
         console.log(error)
      })
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-09-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-09-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多