我在 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。
场景如下:
- x.com 上的 JavaScript 应用程序向 192.168.1.5 发送 AJAX 身份验证请求。
- 来自 192.168.1.5 的响应有一个
Set-Cookie
header ,应该将 cookie 设置为 192.168 .1.5 域。 - x.com 上的 JavaScript 应用程序向位于 192.168.1.5 的 API 发送一个 AJAX 请求,并将第 2 步中的 cookie 作为请求的一部分。
最佳答案
服务器和客户端都需要明确地告诉对方他们想要 cookie。
JavaScript
xhrInstance.withCredentials = true;
服务器 header
Access-Control-Allow-Credentials: true
https://developer.mozilla.org/en-US/docs/HTTP_access_control#Requests_with_credentials
总结一下:与IP地址无关。 Cookie的host
可以是IP地址或域名。
关于javascript - 将 cookie 域设置为 IP 地址(使用 CORS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12669289/