将cookie域设置为IP地址(使用CORS)

时间:2012-10-01 07:48:51

标签: javascript cookies cross-domain ip cors

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

Apache服务器公开一个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作为请求的一部分。

1 个答案:

答案 0 :(得分:3)

服务器和客户端都需要明确告诉对方他们想要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的host可以是IP地址或域名。