客户端活动监视器订阅者 Vanilla js

时间:2021-07-30 22:48:10

标签: javascript campaign-monitor

我正在寻找一个非常简单的普通 js 客户端请求来将订阅者添加到活动监控列表中?我想它看起来像下面的请求,但该请求对我不起作用。我已尝试按照活动监视器 API 文档进行操作,但仍然卡住了,有人知道出了什么问题吗?

https://www.campaignmonitor.com/api/subscribers/

有点像……

function submitEmail(){
    fetch( 
        "https://api.createsend.com/api/v3.2/subscribers/{listid}.{xml|json}", 
        // eg. "https://api.createsend.com/api/v3.2/subscribers/789209790.json"
        {
            method:"POST",
            body: JSON.stringify({
                "EmailAddress": "subscriber@example.com",
                "Name": "New Subscriber",
                "Resubscribe": true,
                "RestartSubscriptionBasedAutoresponders": true,
                "ConsentToTrack":"Yes"
            })
        })
        .then(result => { console.log("Completed with result:", result); })
        .catch(err => {  console.error(err); });
}
document.querySelector('#submit').addEventListener("click", submitEmail);

例如。 https://codepen.io/QuiteQuinn/pen/LYydLZR?editors=1010

API 不谈.. 我知道如何发送 post 请求以将电子邮件添加到邮件列表,但由于核心要求之一是不被带到不同的页面,因此 recaptcha 请求将被忽略。这会导致订阅者被视为机器人,即使他们认为自己已加入列表。

<div class="newsletter-signup">
    <h1 style="color:#e54319">Join our Newsletter</h1>
    <form class="js-cm-form" id="subForm" action="https://www.createsend.com/t/subscribeerror?description=" method="post" data-id="YOUR-DATA-ID">
        <div class="cpuSelect" style="display:inline-block;width:250px;">
            <input style="width:100%;" placeholder="example@domain.com" autocomplete="Email" aria-label="Email" class="js-cm-email-input qa-input-email" id="fieldEmail" maxlength="200" name="YOUR-LIST-NAME" required="" type="email">
        </div>
        <button 
            style="display:inline-block; margin: 0 1rem;background:none;border:none;" 
            class="btn submit continue" 
            type="submit">{ SUBSCRIBE ) ]</button>
    </form>
</div>
function validateEmail(email) {
    var re = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
    return re.test(email);
}

function submitEmail(e){
    e.preventDefault();
    var url = $('.newsletter-signup form.js-cm-form').attr("action"),
        data = $('.newsletter-signup form.js-cm-form').serialize();
    
    fetch( url, {
            method: "POST",
            body: JSON.stringify(data)
        })
        .then(result => { console.log("Completed with result:", result); })
        .catch(err => {  console.error(err); });
}
document.querySelector('.newsletter-signup .submit').addEventListener("click", function(e) { submitEmail(e) });

$(".newsletter-signup .qa-input-email").on("input", function(e) {
    if (validateEmail($(this).val())){
        $(".newsletter-signup button[type='submit']").removeClass("disabled");
    } else {
        $(".newsletter-signup button[type='submit']").addClass("disabled");
    }
});

https://codepen.io/QuiteQuinn/pen/zYwLKjB?editors=1010

0 个答案:

没有答案
相关问题