2014-01-23 37 views
0

我有我在哪里执行一个AJAX饼干并不如HTTP调用访问

//index.php 
<script src="jquery-2.0.3.js"></script> 

<script type="text/javascript"> 
    $(document).ready(function(){ 
     $.get('ajax.php', function(data){ 
     console.log(data); 
    }); 

    }) 

</script> 

诺埃在服务器端,我在ajax.php

创建几块饼干一个网页的index.php
//ajax.php  
    <?php 

/* 
* To change this template, choose Tools | Templates 
* and open the template in the editor. 
*/ 
setcookie("Phone", '111111', time() + 86400); 
print_r($_COOKIE); 
?> 

现在我打开另一个网页test.php的,并试图让这个cookie,但是我得到的cookie,我试图打印饼干

//test.php 
    <?php 
print_r($_COOKIE); 
?> 

但这些cookies不打印。

+0

是cookie的设定?你应该发布完整的'ajax.php'脚本,直到你设置cookie的位置。请注意,在使用'setcookie'之前,不能输出任何内容,因为Cookie是作为标题的一部分发送的。另请注意,默认路径会导致Cookie仅在设置它们的文件夹中可用。 – jeroen

+0

我已经更新了ajax.php正在做什么...... – Kasma

+0

只需在开发人员工具中检查cookie是否存在;萤火虫或资源中的Cookies标签 - > Chrome中的Cookies。 – jeroen

回答

1

通过AJAX设置的Cookie不会在客户端设置,因为它们是在页面加载时浏览器收到的HTTP标头中定义的。这就是为什么你发送输出后你不能调用setcookie。

Cookies是很容易设置使用JavaScript,但:http://www.w3schools.com/js/js_cookies.asp

如果PHP脚本是做所需要的饼干计算,只是通过他们回来为JSON,然后通过JavaScript设置。

我不知道它有多好作品,但这里是管理饼干jQuery插件:http://plugins.jquery.com/cookie/