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/

相关文章:

java - 通过 AJAX POST 传递给 POJO 时,JSON 对象传递部分 NULL 值?

javascript - Scriptmanager不适用于部分回发,仅在Firefox上

php - 如何使用 PHP 对 CSV 文件进行排序而不对标题行进行排序?

javascript - 如何在 Golang 请求中执行 javascript 异步代码

java - 来自 http 服务器的基本 PUT、GET 请求

node.js - 我的 http 请求有什么问题

javascript - $(selector).css() 不工作

javascript - 如何在标题中使用 Kaminari 分页

c++ - 为什么删除 using namespace std 会导致我的项目出错?

c - GCC Linux C - 找不到编译对象头