Magento newsletter ajax request returns null

Magento newsletter ajax request returns null

本文关键字:returns null request ajax newsletter Magento      更新时间:2023-09-26

我正在尝试向Magento发送时事通讯订阅请求,但它返回null并且没有任何反应。

我四处搜索并找到了非常不同的 URL 来发布请求。并且还从基本模板的文件中抓取了代码。

事实上,也许我没有发送正确的参数或其他什么。

这是正在使用的代码:

<form method="post" id="newsletter-form">
<input type="hidden" class="url" value="<?php echo $this->getUrl('newsletter/subscriber/new') ?>">
    <input id="newsletter" type="text" name="email" placeholder="RECEBA NOVIDADES" value="" class="input-text myFormInput" maxlength="128" autocomplete="off" style="width: 188px !important">
    <button type="submit" id="ajax-newsletter-submit" title="CADASTRAR" 
    class="button myFormButton" style="margin-top:20px;margin-left: -107px !important;width: 103px">CADASTRAR</button>
    </div>
</form> 

Javascript

   var newsletterSubscriberFormDetail = new VarienForm('newsletter-form');
   $j(function() {
       $j("#ajax-newsletter-submit").click(function() {        
        var email =$j("#newsletter").val();
        var url=$j(".url").val();
        var dataString = 'email='+ email;
            if(email=='') {
               $j("#newsletter").focus();
            } else {
                var a = email;
                var filter = /^[a-zA-Z0-9_.-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{1,4}$/;
                if(filter.test(a)){
                    $j.ajax({
                        type: "POST",
                        url: url,
                        data: dataString,
                        success: function(){                
                            alert('Assinatura realizada com sucesso!');
                            $j("#newsletter").val('');
                        }
                    });
                } else {
                    $j("#newsletter").focus();
                }
            }  
            return false;
        });
    });

试试这段代码,

 var val_form = new VarienForm('your form id');
jQuery("#your form id").submit(function(e)
{
    if (val_form.validator && val_form.validator.validate())   
    {        
        var postData = jQuery(this).serializeArray();
        var formURL = jQuery(this).attr("action");
        jQuery.ajax(
        {
            url : formURL,
            type: "POST",
            data : postData,
            success:function(data, textStatus, jqXHR)
            {   
                alert('success');
            },
            error: function(jqXHR, textStatus, errorThrown)
            {
                alert('Failure');
            }
        });
        this.reset(); //form field reset
        e.preventDefault(); //STOP default action
        e.unbind(); //unbind. to stop multiple form submit.
    }
});