5

我有一个托管在x.com的 JavaScript 应用程序,它使用 AJAX(通过 jQuery)联系托管在 LAN 环境中的 Apache 服务器(具有静态 IP,192.168.1.5)。

Apache 服务器公开了一个 API,该 API 要求用户设置一个特定的 cookie 才能使用它。

我的问题是我无法让 Apache 服务器设置具有正确域(192.168.1.5)的 cookie,以便浏览器通过 AJAX 调用发送 cookie。

有没有办法设置一个以IP为域的cookie?我见过的所有示例都要求域的格式为example.org

场景如下:

  1. x.com上的 JavaScript 应用程序向192.168.1.5发送 AJAX 身份验证请求。
  2. 来自192.168.1.5的响应有一个Set-Cookie标头,该标头应将 cookie 设置为192.168.1.5域。
  3. x.com上的 JavaScript 应用程序向位于192.168.1.5的 API 发送 AJAX 请求,并将步骤 2 中的 cookie 作为请求的一部分。
4

1 回答 1

4

服务器和客户端都需要明确告诉对方他们想要 cookie。

JavaScript

xhrInstance.withCredentials = true;

服务器标头

Access-Control-Allow-Credentials: true

https://developer.mozilla.org/en-US/docs/HTTP_access_control#Requests_with_credentials

总结一下:它与IP地址无关。cookie 可以是hostIP 地址或域名。

于 2012-10-01T08:58:08.367 回答