制作 Ajax 以将电子邮件推送到 MailChimp 列表但 URL 错误

Posted

技术标签:

【中文标题】制作 Ajax 以将电子邮件推送到 MailChimp 列表但 URL 错误【英文标题】:Making an Ajax to push email to MailChimp list but wrong url 【发布时间】:2017-04-22 06:51:47 【问题描述】:

抱歉我的英语不好,我是 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 列表中。

但事情是这样的:

Pls click here to see image

我没有将我的电子邮件推送到 mailchimp 列表,我将其推送到我的本地,因此该电子邮件不包含在我的 Mailchimp 列表中。

任何人请帮我解决这个问题,我应该怎么做才能在 ajax 中更改 url 以使其正常工作?

谢谢大家。 蓬。

【问题讨论】:

【参考方案1】:

最可能的原因是你在字符串的两边和内部都放了双引号,把你的网址改成这样:

 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
    
);

【讨论】:

嗨@Yaser Adel Mehraban。非常感谢你的建议。我会尝试并在我回家后立即回复。 嗨@Yaser Adel Mehraban,我改变了你的建议,但结果还是一样。我认为这里的问题是我的 Ajax Url 的逻辑不正确。你有什么想法吗? 你可以试试替代方案@PhongNguyen

以上是关于制作 Ajax 以将电子邮件推送到 MailChimp 列表但 URL 错误的主要内容,如果未能解决你的问题,请参考以下文章

如何授予 Git 'ForcePush' 权限以将 bfg-repo-cleaner 结果推送到 VSTS?

如何配置 Azure 服务总线队列以将消息推送到客户端而不进行轮询?

循环遍历两个对象数组以将匹配值推送到新数组在 React 中不起作用,但在 JS Fiddle 中起作用

如何使用ajax将数据推送到数组

需要在 jQuery 中从 AJAX 将所有 JSON 推送到一个数组中

将数据推送到页面而不定期检查?