Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用ajax在服务器端创建的Cookie不能作为http调用访问_Php_Jquery_Ajax_Cookies - Fatal编程技术网

Php 使用ajax在服务器端创建的Cookie不能作为http调用访问

Php 使用ajax在服务器端创建的Cookie不能作为http调用访问,php,jquery,ajax,cookies,Php,Jquery,Ajax,Cookies,我有一个web页面index.php,其中我正在执行一个ajax //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); });

我有一个web页面index.php,其中我正在执行一个ajax

//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>
//index.php
$(文档).ready(函数(){
$.get('ajax.php',函数(数据){
控制台日志(数据);
});
})
在服务器端,我在ajax.php中创建了一些cookie

//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);
?>
//ajax.php
现在我打开另一个页面test.php并尝试获取此cookie,但我正在获取cookie,我尝试打印cookie

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

但是这些cookie不会打印。

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

不过,使用javascript设置cookie非常容易:

如果PHP脚本正在进行cookie中需要的计算,只需将它们作为JSON传递回去,然后通过javascript进行设置


我不知道它的工作情况如何,但这里有一个用于管理cookie的jQuery插件:

cookie是否已设置?在设置cookie之前,您应该发布完整的
ajax.php
脚本。请注意,在使用
setcookie
之前不能输出任何内容,因为cookie是作为标头的一部分发送的。另外请注意,默认路径会导致cookie仅在设置cookie的文件夹中可用。我已经更新了what ajax.php正在执行的操作…只要检查开发人员工具中是否有cookie;firebug中的Cookies选项卡或Chrome中的Resources->Cookies。不,我在开发者工具中没有找到这些Cookies…所以发布整个
ajax.php
脚本。