可以在AJAX请求中发送标头吗?

时间:2010-02-18 13:51:04

标签: ajax header request cookies

我可以调用服务器来设置一个带有AJAX请求的新cookie(也就是说,在页面已经加载之后)?

例如,当访问者点击链接时,ajax会打开一个php文件,设置一个像这样的新cookie:

setcookie('cookiename', 'true', time()+3000, "/",'...');

但这是在html(包含实际的<a>标签的页面)被渲染之后完成的。是否可以在ajax中设置cookie? (也许是因为加载的php文件与原始的html页面是分开的。)

3 个答案:

答案 0 :(得分:3)

当然,您可以让服务器的响应设置为cookie。请记住,cookie是HTTP的东西,而不是HTML的东西;您的原始HTML文件已经在浏览器上的事实是无关紧要的。您的ajax请求是对服务器的单独HTTP请求,(希望!)会向浏览器生成HTTP响应;并且该响应可以包含新的Set-Cookie标题。

我不是PHP人员,你需要检查你用来设置cookie的PHP机制是否存在限制(我无法想象)。但从根本上说,不,这样做没有问题。我用JSP和经典ASP完成了它。

答案 1 :(得分:1)

我已经在我网站上对AJAX请求的响应中设置了cookie,但我还没有遇到任何问题。 (虽然我没有找到问题。)可能有些浏览器在XmlHttpRequest中接收它们时没有设置cookie,但到目前为止我已经看到它在IE,Chrome和Firefox中工作。

答案 2 :(得分:0)

为什么不使用javascript编辑Cookie?以JSON格式返回cookie的内容,并使用javascript存储值。