使Ajax将电子邮件推向MailChimp列表,但URL错误



对不起,我的英语不好,我是ajax的新手。

我尝试创建一个ajax以将电子邮件推向mailChimp列表时,但是我发现我的ajax中的URL是错误的。

在这里详细信息:

我的控制器:

    public class MailChimpController : UmbracoApiController
    {
        private static readonly MailChimpManager Manager = new MailChimpManager();
    [HttpPost]
    public async Task<Member> CreateOrUpdateMember(string listID, string emailAddress)
    {
        var member = new Member
        {
            EmailAddress = emailAddress,
            Status = Status.Pending,
            EmailType = "html",
            TimestampSignup = DateTime.UtcNow.ToString("s")
        };
        var result = await Manager.Members.AddOrUpdateAsync(listID, member);
        return result;     
    }
}

我的html:

 <input type="text" class="email-input">
 <button type="button" class="button-subscribe">Subscribe</button>

和最后一个:我的ajax:

$(document).ready(function () {
    var pattern = /^[-a-z0-9~!$%^&*_=+}{'?]+(.[-a-z0-9~!$%^&*_=+}{'?]+)*@@([a-z0-9_][-a-z0-9_]*(.[-a-z0-9_]+)*.(aero|asia|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}))(:[0-9]{1,5})?$/i;
    $("button").click(function(){
        var _emailAddress = $("input.email-input").val();
        if (_emailAddress == "" || !pattern.test(_emailAddress)) {
            message = "Email is invalid";
            alert(message)
            return false;
        }
        if (pattern.test(_emailAddress))
        {
            $.ajax({
                type: "POST",
                url: "@Url.Action("CreateOrUpdateMember","MailChimp")",
                data: {
                    listID: "4f8083915d",
                    emailAddress: _emailAddress
                },
                encode : true,
                success: function () {
                    alert("You have successfully subscribed, please check your email to confirm !");
                },
                error: function () {
                    alert("Something wrong, you have not subscribed yet. Please do again !");
                }
            });
        }
    });
});

我期望的:在input中输入的电子邮件将添加到我的MailChimp列表中。

但是这里的东西:

请单击此处查看图像

我没有将电子邮件推到mailchimp列表,而是将其推入本地,因此电子邮件未包含在我的MailChimp列表中。

有人请帮助我,我应该在更改Ajax的url以使其起作用?

谢谢家伙。phong。

最可能的原因是,您在两侧和字符串内都添加双引号,将URL更改为类似的东西:

 url: '<%= Url.Action("CreateOrUpdateMember", "MailChimp") %>'

url: '@Url.Action("CreateOrUpdateMember", "MailChimp")'

更新:

如果Asp.Net没有为您创建正确的url,请尝试以下操作:

$.ajax
({
    type: "POST",
    url: "/MailChimp/CreateOrUpdateMember/",
    dataType: 'json',
    data: {
        listID: "4f8083915d",
        emailAddress: _emailAddress
    }
});

最新更新