XHR调用的脚本可以引用$ _COOKIE吗?

时间:2010-04-11 02:36:09

标签: cookies xmlhttprequest

快速是/否 - 我正在构建一个AJAX应用程序,一些脚本需要身份验证。如果PHP脚本是通过XHR调用的,那么我可以在服务器上阅读$_COOKIE['username']$_COOKIE['password'],无论是$.get()还是$.post()

附带问题:它还可以设置Cookie吗?这被认为是“良好做法”吗?

2 个答案:

答案 0 :(得分:1)

Cookie在HTTP请求的标头中发送。无论何种请求(即GET / POST /等),只要它使用HTTP协议(或HTTPS),就可以使用cookie头。这是一条双向的街道...... cookie在标题中发送到服务器(Cookie:标题),服务器在标题中设置cookie(Set-Cookie:标题)。

这意味着Ajax / XHR请求很好,因为它们只是HTTP请求的核心。现代浏览器将发送cookie以及他们的Ajax请求,并因此尊重任何传入的cookie。这意味着,对于您接收的PHP脚本,$_COOKIE将包含正常的cookie(如果有的话)。

答案 1 :(得分:1)

是。对于与cookie的域匹配的所有请求,它们将通过HTTP请求标头进入。

您可以依赖PHP会话和cookie变量来处理这些请求。

您也可以设置Cookie(我们在网站上使用Ajax登录表单执行此操作)。我不认为它有任何问题,无论是技术上还是哲学上。