Session和jQuery

时间:2012-02-16 18:58:40

标签: php jquery session

我正在建设一个由domain.com的主要前端构建的网站(它尚未投入生产 - 所以希望不需要具体细节)。 client.domain.com上有一个客户结算网站

计费系统已经过编码 - 我几乎无法控制它,但它是一个很好的API。

我试图通过jQuery从该客户端区域获取一些信息以显示在前端。令人费解的是,这只是两天前工作 - 并且已经停止。

我用来获得我需要的东西很简单:

     $(document).ready(function(){
        $.get("client/logincheck.php", function(data){
           $('#dynamicsidebar').append(data);
        });
     });

现在 - 我调用的页面(logincheck.php)位于站点的客户端区域。在目录结构方面,它位于前端的webroot下 - 在客户端/目录中,因此我可以用相对路径调用它。

目前,出于调试目的,我只是简单地包含了计费信息所需的文件(我已成功登录)。然后打印$ _SESSION数组的输出,该数组由计费系统(编码代码)填充,然后退出:

客户端代码/ logincheck.php

    require("dbconnect.php");
    require("includes/functions.php");
    require("includes/clientareafunctions.php");

    print_r($_SESSION);
    die();

如果我直接在浏览器中浏览到该URL(client.domain.com/logincheck.php) - 我会得到以下输出:

    Array ( [calinkupdatecc] => 0 [calinkupdatesq] => 0 [uid] => 1 [upw] => a49de38fe12d325feb11bc9be1762482 [cainvorderby] => status [cainvsort] => DESC [cadomorderby] => domain [cadomsort] => ASC [caemailsorderby] => date [caemailssort] => DESC [caprodorderby] => product [caprodsort] => ASC ) 

这是我所期待的。

但是,从前端开始 - div只附加一个空数组:

    Array()

如果jQuery正在运行,它应该是(此刻,无论如何) - 那个SESSION数组,不应该吗?

如果这是相关的 - 我的php.ini文件中有session.cookie_domain - .domain.com设置。

感谢您的帮助。

**编辑**

我将client / logincheck.php中的代码替换为:

    if ($_SESSION['uid']) {
        echo "Logged In";
    } else {
       echo "Not logged in";

   }
   die();

现在奇怪的是 - 我直接浏览页面,然后我将'登录'输出到屏幕。在前端,我得到了“没有登录”的回声。

那么如何直接访问URL显示有效的会话,但使用GET检索页面显示其他内容?

1 个答案:

答案 0 :(得分:1)

我不知道每个人说的“正确”答案,但我会从尝试这个开始:

  1. 打开webkit浏览器(Chrome,Safari等)
  2. 打开开发人员工具,以便捕获AJAX请求(在“网络”选项卡下)
  3. 查看“请求标题”
  4. 看看“回复”
  5. 我建议查看请求标头,因为$.get方法会尝试智能地猜测返回的数据类型是什么,除非您填写该参数[1]。我不是百分百肯定这可能与它有任何关系,但如果它认为它回到了不同的数据类型,那么可能会在幕后发生一些时髦的事情。

    我还建议查看实际的响应标头,以便您可以看到实际回来的内容。我在我的后端做了类似的事情,然后我回到了一个对象数组,所以当我添加响应时,它会输出Array

    就像我说的,这只是一个起点,我需要看一下代码,以便更好地帮助你。

    [1] jQuery $ .get文档:http://api.jquery.com/jQuery.get/