【问题标题】:How can i set the cookie in chrome using ajax request server side in php如何在 chrome 中使用 php 中的 ajax 请求服务器端设置 cookie
【发布时间】:2014-09-29 00:39:35
【问题描述】:

我尝试在 AJAX 请求中设置一个 cookie,但它没有按预期的方式工作。

我在堆栈溢出方面找到了一些有价值的帮助,但我仍然无法使其正常工作。

我知道以前有很多重复的问题,但我真的都试过了。

以下链接是我尝试过的以下答案:

  1. Can an AJAX response set a cookie?
  2. Code Igniter Cookie
  3. Setting a cookie in an AJAX request?
  4. php setcookie not working with ajax call

这是我正在使用的当前代码:

$name = '_user';
$value = "hello";
$expire = time() + 86500;
$domain = '.localhost';
$path = '/';
setcookie($name,$value,$expire,$path,$domain);

这些是 Mozilla Firefox 中检查元素的屏幕截图 Google Chrome 中的这个

【问题讨论】:

  • 为什么不直接使用 javascript 或 jQuery 设置 cookie?收到响应后,设置 cookie。并不是说使用 PHP 作为 cookie 不是一个解决方案,但是.. 好吧.. 只是说:)
  • @briosheje 但它正在使用 Firefox,那么为什么不使用 chrome 呢? chrome有什么限制吗?
  • 据我所知,通常不会。也许您对 chrome 中的 cookie 有一些设置?
  • 我正在使用 CI,当我使用 ci_session 名称调用它的任何控制器时,它也会设置 cookie 默认值
  • 当您在通过 javascript 发送 AJAX 请求后从服务器返回响应时,如果您手动或通过 javascript 刷新页面,会发生什么情况?您的页面是否像设置了 cookie 一样?

标签: php ajax google-chrome cookies


【解决方案1】:

我遇到了同样的问题

我以前也这样做过

        $this->input->set_cookie('language', 'en');

我也是这样做的:

        $cookie = array(
            'name'   => 'language',
            'value'  => 'en',
        );
        $this->input->set_cookie($cookie);

两者都不起作用,我尝试给它一个到期日期并将 cookie 作为数组传递

        $cookie = array(
            'name'   => 'language',
            'value'  => $this->session->userdata('language'),
            'expire' => '86500',
        );
        $this->input->set_cookie($cookie);

而且,我得到了这个工作......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-05
    • 1970-01-01
    • 2017-08-05
    • 1970-01-01
    • 2014-02-08
    • 2021-12-28
    • 1970-01-01
    相关资源
    最近更新 更多