2017-05-03 138 views
2

我创建了一个页面,该页面通过单击按钮(ajax与PHP)来设置cookie,然后重定向到不同的页面页面(JavaScript)。在ajax调用(PHP)中设置cookie,然后在ajax回调(JavaScript)中重定向

$.ajax({ 
    url: "addTeacher.php", 
    dataType: 'html', 
    data: text, 
    cache: false, 
    type: "GET", 
    success: function(html) {               

     window.location = "teacherList.php"; 
    } 
}); 

但是当我尝试访问该组中的cookie正被重定向到(teacherList.php)的页面是空的。如果再次刷新重定向的页面,则可访问cookie。

这是我如何在addTeacher.php中设置cookie。

addTeacher($teacher, $items);  
setcookie("$teacher_id", "$teacher_id", time() + (86400 * 1), "/"); 
+0

确保没有被在头的cookie之前输出。另外为什么你有变数的引号?只是好奇 – Akintunde007

+0

我认为你需要使用setcookie('teacher_id',$ teacher_id,time()+ ......否则稍后有点难以获取cookie – Scriptman

回答

2

你必须发送AJAX的异步请求,使Ajax请求完成后,你有饼干由you.Hope设置你会得到it.Thanks

+1

为什么你不发表评论? – Akintunde007

+0

我是新来的stackoverflow.Should回答这个问题或评论? –

0

事实证明,设置路径在AJAX请求中发送cookie时,选项非常重要。如果设置路径= /,例如:

Set-Cookie:SessionId=foo; Path=/; HttpOnly 

请参阅此: Setting cookies in an ajax request