ajax - 可以在 AJAX 请求中发送 header 吗?

标签 ajax header request cookies

我可以通过 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/

相关文章:

c# - 使用 Windows 服务的 .NET http 网络请求

java - 在 HttpSessionListener 中如何获取 HttpServletRequest?

python - ajax post 上的 django-csrf 保护

php - Ajax 表单 : Wrong value sent back

java - Hessian,添加标题

c - 这是解决循环 typedef 依赖的正确方法吗?

javascript - 滚动经过另一个 div 后让 div 停留在页面顶部?

apache - 使用 Mod_JK 在 JBoss 服务器上测量请求处理时间

php - 从 php/mysql 自动完成中获取值

javascript - 您能告诉我为什么这个 ajax 调用没有到达网络服务吗?