我可以通过 AJAX 请求调用服务器设置新的 cookie(也就是说,在页面已经加载之后)吗?
例如,当访问者点击一个链接时,ajax 会打开一个 php 文件,该文件会像这样设置一个新的 cookie:
setcookie('cookiename', 'true', time()+3000, "/",'...');
但这是在呈现 html(包含实际按下的 <a>
标签的页面)之后完成的。在ajax中设置cookie仍然可以吗? (可能是因为加载的 php 文件与原始 html 页面是分开的)。
最佳答案
当然,您可以让服务器的响应设置一个 cookie。请记住,cookie 是 HTTP 的东西,而不是 HTML 的东西;您的原始 HTML 文件已经在浏览器上这一事实无关紧要。您的 ajax 请求是对服务器的单独 HTTP 请求,它(希望如此!)生成返回给浏览器的 HTTP 响应;并且该响应可以包含一个新的 Set-Cookie
header 。
我不是 PHP 专家,您需要检查您用于设置 cookie 的 PHP 机制是否存在限制(我无法想象有限制)。但从根本上说,不,这样做是没有问题的。我用 JSP 和经典 ASP 都做过。
关于ajax - 可以在 AJAX 请求中发送 header 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2289002/