Javascript 提交后的Cookie重定向问题(表单)

Javascript 提交后的Cookie重定向问题(表单),javascript,jquery,redirect,cookies,aweber,Javascript,Jquery,Redirect,Cookies,Aweber,我有一个重定向问题,我试图添加到一个网站上。我不是一个大的专家,所以这就是为什么我请求善意的帮助 在这里展示代码之前,有一些问题,以及我希望它如何工作 因此,我在我的网站上添加了一个Aweber表单,其中包含两个字段名称和电子邮件+提交按钮。基本上,如果提交成功,用户将被重定向到另一个页面,并设置cookie 饼干怎么了 表单位于website.com,如果用户获得订阅,则会重定向到website.com/where.html 此外,如果他订阅了,下次他进入website.com时,他将被自动重

我有一个重定向问题,我试图添加到一个网站上。我不是一个大的专家,所以这就是为什么我请求善意的帮助

在这里展示代码之前,有一些问题,以及我希望它如何工作

因此,我在我的网站上添加了一个Aweber表单,其中包含两个字段名称和电子邮件+提交按钮。基本上,如果提交成功,用户将被重定向到另一个页面,并设置cookie

饼干怎么了

表单位于website.com,如果用户获得订阅,则会重定向到website.com/where.html

此外,如果他订阅了,下次他进入website.com时,他将被自动重定向到website.com/where.html

好的,我得到了这个主要的想法,但我有一个问题,它是否正确工作

基本上,现在它重定向用户,即使他输入了错误的详细信息,如姓名:jhkjhj和电子邮件:jkhkjhkjhjk

如果他这样输入这些细节(不正确),他应该进入由Aweber设置的错误页面,但是现在他被重定向了

这就是它应该如何工作的:

  • 用户正确地输入详细信息,他将被重定向并设置cookie
  • 用户输入的详细信息不正确,他将获得默认的Aweber错误页面,并且他不会被重定向
  • 这是我现在的代码:

    >      $(document).ready(function() {
    >         $('#subscribe1').show() 
    >         
    >           if (!readCookie('hide')) {
    >           }
    >         
    >           else {
    >             window.location = "http://website/whatever"
    >           }
    >         
    >         
    >           $('#sendbtn').click(function() {
    >             window.location = "http://website/whatever"
    >             createCookie('hide', true, 365)
    >             return false;
    >           });
    >         
    >         });
    >         
    >         
    >         
    >         function createCookie(name,value,days) {
    >           if (days) {
    >             var date = new Date();
    >             date.setTime(date.getTime()+(days*24*60*60*1000));
    >             var expires = "; expires="+date.toGMTString();
    >           }
    >           else var expires = "";
    >           document.cookie = name+"="+value+expires+"; path=/";
    >         }
    >         
    >         function readCookie(name) {
    >           var nameEQ = name + "=";
    >           var ca = document.cookie.split(';');
    >           for(var i=0;i < ca.length;i++) {
    >             var c = ca[i];
    >             while (c.charAt(0)==' ') c = c.substring(1,c.length);
    >             if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
    >           }
    >           return null;
    >         }
    >         
    >         function eraseCookie(name) {
    >           createCookie(name,"",-1);
    >         }
    
    $(文档).ready(函数(){
    >$('#subscribe1').show()
    >         
    >如果(!readCookie('hide')){
    >           }
    >         
    >否则{
    >window.location=”http://website/whatever"
    >           }
    >         
    >         
    >$('#sendbtn')。单击(函数(){
    >window.location=”http://website/whatever"
    >createCookie('hide',true,365)
    >返回false;
    >           });
    >         
    >         });
    >         
    >         
    >         
    >函数createCookie(名称、值、天数){
    >如果(天){
    >变量日期=新日期();
    >date.setTime(date.getTime()+(天*24*60*60*1000));
    >var expires=“;expires=“+date.togmString();
    >           }
    >else var expires=“”;
    >document.cookie=name+“=”+value+expires+“path=/”;
    >         }
    >         
    >函数readCookie(名称){
    >变量nameEQ=name+“=”;
    >var ca=document.cookie.split(“;”);
    >对于(变量i=0;ivar c=ca[i];
    >而(c.charAt(0)='')c=c.substring(1,c.length);
    >如果(c.indexOf(nameq)==0)返回c.substring(nameq.length,c.length);
    >           }
    >返回null;
    >         }
    >         
    >函数(名称){
    >createCookie(名称,“,-1);
    >         }
    
    这是阿韦伯代码的一部分

    <form method="post" class="af-form-wrapper" action="http://www.aweber.com/scripts/addlead.pl"  >
    <div style="display: none;">
    <input type="hidden" name="meta_web_form_id" value="522321120" />
    <input type="hidden" name="meta_split_id" value="" />
    <input type="hidden" name="listname" value="jenselter" />
    <input type="hidden" name="redirect" value="http://website.com/whatever" />
    
    <input type="hidden" name="meta_adtracking" value="My_Web_Form" />
    <input type="hidden" name="meta_message" value="1" />
    <input type="hidden" name="meta_required" value="name,email" />
    
    <input type="hidden" name="meta_tooltip" value="" />
    </div>
    
    
    

    谢谢

    对于cookie管理,google有一个名为jcook.js的轻量级javascript文件

    下载文件并使用它

    我举一个小例子来做类似的工作

    您的表单在输入姓名和电子邮件时如下所示

    <form method="POST" action="http://www.aweber.com/scripts/addlead.pl" id="inputForm">
        <input name="name" />
        <input name="email" />
        <button id="authorize">authorize</button>
    </form><!--end of the form-->
    

    如果重定向页面和表单提交页面相同,则可以直接使用$(“#inputForm”).submit();我认为您的页面中缺少jquery.js库。请先添加它。并使用按钮标签而不是。因为如果您将输入标记与提交类型一起使用,它将在单击事件时提交。但您正在使用jquery绑定事件。所以去掉输入标签,使用按钮标签。太好了。谢谢你的帮助!
    $(document).ready(function(){
        $("#authorize").click(function(){
            var name = $("input[name='name']").val();
            var email = $("input[name='email']").val();
    
            $.ajax({
                url: "http://www.aweber.com/scripts/addlead.pl",
                data: {name: name, email: email},
                async: false,
                success: function(data){//when you will get the successful authorization
                    COOKIES.createCookie("hide", true, 365);//COOKIES IS AN OBJECT IN THE JCOOK.JS TO MANAGE COOKIES
                    window.location.href = "http://website/whatever";
                }
            });            
        });
    
        //if cookie exists
        if(COOKIES.readCookie('hide') != null){
            window.location.href = "http://website/whatever";
        }
    });