MailChimp使用Ajax获取错误响应

时间:2015-12-03 05:53:58

标签: jquery ajax mailchimp

目前我使用@skube方法提交mailchimp表单。我可以成功设置它真正的工作。但我想在我的网站上收到mailchimp错误消息。

赞:当有人已经订阅或提供假电子邮件,或者mailchimp提供的无效电子邮件等。

以下是@skube提供的代码。

HTML代码:

[1] pry(main)> Runn.all
  Runn Load (0.8ms)  SELECT "runns".* FROM "runns"
=> [#<Runn:0x007f4784e9b3a8
  id: 1,
  ident: "Run 0.0",
  size: "Medium,",
  amenities: nil,
  created_at: Thu, 03 Dec 2015 05:59:02 UTC +00:00,
  updated_at: Thu, 03 Dec 2015 05:59:02 UTC +00:00,
  ward_id: 1,
  occupied: false>,
 #<Runn:0x007f4784e98a40
  id: 2,
  ident: "Run 0.1",
  size: "Small,",
  amenities: nil,
  created_at: Thu, 03 Dec 2015 05:59:02 UTC +00:00,
  updated_at: Thu, 03 Dec 2015 05:59:02 UTC +00:00,
  ward_id: 1,
  occupied: false>,
 #<Runn:0x007f4784e98900
  id: 3,
  ident: "Run 1.0",
  size: "Small,",
  amenities: nil,

ajax代码

<form class="myform" action="http://XXXXXXXXXlist-manage2.com/subscribe/post" method="POST">
  <input type="hidden" name="u" value="XXXXXXXXXXXXXXXX">
  <input type="hidden" name="id" value="XXXXXXXXX">
  <input class="input" type="text" value="" name="MERGE1" placeholder="First Name" required>
  <input type="submit" value="Send" name="submit" id="mc-embedded-subscribe">
</form>

我搜索了这个,但没有找到任何有效的文件。我找到了一个github代码,但我无法使其工作。这是github link

希望有人帮助我。

注意:我尝试使用旧的api代码方法,但mailchimp建议不要使用它。他们已经发布了3.0版本的API

2 个答案:

答案 0 :(得分:2)

抱歉,感谢大家的时间。我得到了解决方案。解决方案非常简单!

需要在错误部分使用数据[&#39; msg&#39;]

所以代码看起来像:

$('.myform').submit(function(e) {
  var $this = $(this);
  $.ajax({
      type: "GET", // GET & url for json slightly different
      url: "http://XXXXXXXX.list-manage2.com/subscribe/post-json?c=?",
      data: $this.serialize(),
      dataType    : 'json',
      contentType: "application/json; charset=utf-8",
      error       : function(err) { alert("Could not connect to the registration server."); },
      success     : function(data) {
          if (data.result != "success") {
              // Something went wrong, parse data.msg string and display message

              alert(data['msg']);

          } else {
              // It worked, so hide form and display thank-you message.

              alert('Thanks for subscribe');
          }
      }
  });
  return false;
});

因此,您可以在div或p或任何地方使用数据[&#39; msg&#39;] ..您想要显示输出。

示例:

$('#error').html(data['msg']);

谢谢大家。

答案 1 :(得分:0)

感谢您的自动回复!

对我有用,但我必须做一些改变: 形式:

<form id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate myform" validate>

,没有动作和方法。

ajax 调用:

$.ajax({
              type: "post",
              url: "xxxxxx/subscribe/post-json?c=?",
              data: $this.serialize(),
              mode: 'no-cors',
              dataType    : 'json',
              contentType: "application/json",
              error       : function(err) { alert("Could not connect to the registration server."); },
              success     : function(data) {
                  if (data.result != "success") {
                      // Something went wrong, parse data.msg string and display message
alert(data['msg']);
                  } else {
                      
alert("thanks!");
                  }
              }
          });