PHP AJAX 在某些目录中复制 cookie

我有以下文件文件夹结构:


public_html >> index.php、post.php 等


public_html >> 包括 >> common.php、security.php、ajaxfile.php 等。


public_html >> ajaxlibs >> chk_login.php 等


下面的文件有很多功能,包括一个用于登录的功能,几乎所有地方都会调用该文件:


安全.php:


 <?php


//checking user credentials goes here ......

//...........


    function logIn($newToken,$uID)

    {

            $cookieExpiry= time()+36000;

            //set user login (ul) cookie:

            setcookie('token',$newToken,$cookieExpiry,'/','',FALSE,true);

            setcookie('uid',$uID,$cookieExpiry,'/','',FALSE,true);

            return 'success';

    }

    //if user credentials are valid:

    logIn('token_hashed_via_another_func', $uID);

?>

cookie 在登录时完美设置,如下所示:


Cookie 名称:token,值:'token_hashed_via_another_func',路径:'/'


但是当我调用与 security.php 位于同一目录的 AJAX 文件时,例如 include/ajaxfile.php,我得到一个具有不同值和路径的新 cookie,如下所示:


Cookie 名称:token,值:'different_value_with_unkown_hashing_resource',路径:'/include/'


因此,我得到了一个名称相同但值和路径不同的新 cookie,并且原始 cookie 没有被删除。


令人惊讶的是,如果我将同一个 AJAX 文件移动到另一个文件夹而不是具有 security.php 的文件夹,我不会遇到同样的问题。


我几乎可以肯定它在某种程度上与 AJAX 有关,因为当我需要来自同一目录(即包含)的文件时,问题不会发生。


这是我如何调用 AJAX 文件的示例:


$.ajax({

      type: "GET",

      url: "include/ajaxfile.php",

      dataType: "text",

      async: true,

      cache: false,

      timeout: 40000,

      success: function(response)

      {

          //do something or even nothing

      },

      error: function()

      {

         alert("error!");

      }

    });


慕侠2389804
浏览 57回答 1
1回答

收到一只叮咚

经过长时间的尝试,原来问题出在浏览器缓存上。我正在使用 Chrome,在删除所有存储的缓存和 cookie 后,问题不再发生——至少到目前为止是这样。感谢上帝!
打开App,查看更多内容
随时随地看视频慕课网APP