代码之家  ›  专栏  ›  技术社区  ›  casraf

Setcookie不行?

  •  2
  • casraf  · 技术社区  · 14 年前

    我在Twitter应用程序的回调页面中定期设置cookies。一切正常。

    // js/main.js
    $('#settings-form').live('submit', function() {
        $.post('controllers/settings.php', $(this).serialize(), function(data) { // Everything here works.
            if (data == 'OK') // no errors spits out "OK". this works
                changeView({'msg': 'Your settings were saved successfully.'}); // This just resets the view and adds a message div at the top. This works
            else
                changeView({'msg': data}); // This echoes the error if any exists. Doesn't happen, no errors arise
        });
        return false; // Cancels redirecting after submitting form
    });
    
    // controllers/settings.php
    setcookie('user_settings', serialize($_POST), strtotime('+1 year'));
    

    我检查了所有的变量,甚至尝试为test设置虚拟变量(比如“boo”而不是serialize($\u POST)。因为某种原因,那是行不通的。

    1 回复  |  直到 14 年前
        1
  •  2
  •   Spudley    14 年前

    当您进行ajax类型的调用时,cookie可能会工作得有点奇怪,我想这就是您看到的——服务器可能正在设置cookie,但是浏览器可能没有在Cookies数据中设置它,因为它不是页面加载。

    如果您真的想使用cookies,那么使用Javascript可能会更好。您可以通过访问文档.cookie. (您需要获得cookie字符串的正确语法,但JQuery可能有自己的函数,使它们更易于使用)