Javascript 提交后的Cookie重定向问题(表单)
我有一个重定向问题,我试图添加到一个网站上。我不是一个大的专家,所以这就是为什么我请求善意的帮助 在这里展示代码之前,有一些问题,以及我希望它如何工作 因此,我在我的网站上添加了一个Aweber表单,其中包含两个字段名称和电子邮件+提交按钮。基本上,如果提交成功,用户将被重定向到另一个页面,并设置cookie 饼干怎么了 表单位于website.com,如果用户获得订阅,则会重定向到website.com/where.html 此外,如果他订阅了,下次他进入website.com时,他将被自动重定向到website.com/where.html 好的,我得到了这个主要的想法,但我有一个问题,它是否正确工作 基本上,现在它重定向用户,即使他输入了错误的详细信息,如姓名:jhkjhj和电子邮件:jkhkjhkjhjk 如果他这样输入这些细节(不正确),他应该进入由Aweber设置的错误页面,但是现在他被重定向了 这就是它应该如何工作的:Javascript 提交后的Cookie重定向问题(表单),javascript,jquery,redirect,cookies,aweber,Javascript,Jquery,Redirect,Cookies,Aweber,我有一个重定向问题,我试图添加到一个网站上。我不是一个大的专家,所以这就是为什么我请求善意的帮助 在这里展示代码之前,有一些问题,以及我希望它如何工作 因此,我在我的网站上添加了一个Aweber表单,其中包含两个字段名称和电子邮件+提交按钮。基本上,如果提交成功,用户将被重定向到另一个页面,并设置cookie 饼干怎么了 表单位于website.com,如果用户获得订阅,则会重定向到website.com/where.html 此外,如果他订阅了,下次他进入website.com时,他将被自动重
> $(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";
}
});