Ajax 调用未存储 Cookie
Cookie not stored with Ajax call
我对饼干和 ajax 电话感到疯狂。
我的配置很简单。我 运行 8282 端口上的一个网站,(localhost.com:8282)。我的网站在 8080 端口 (localhost.com:8080) 上调用一些网络服务。当然,我在我的主机文件中添加了一行以避免本地主机问题:
127.0.0.1 localhost.com
我尝试在使用 ajax 调用网络服务时设置 cookie。这是我用 Chrome 调试器可以看到的回复 header :
Set-Cookie:token=Custom eyJ0aW1lc3RhbXAiOiIxNDI0NzE5Mzc5ODY3IiwgImlkIjoiNTRlNzZkZGU2ZDk3ZGM1MjYxZjQzMzFlIiwgInNpZ25hdHVyZSI6Im5tZnFGeEEvYlc0TFJGNFJNb3dBZXJZOUw0aWw0aEorcFh1YUt5b3VFK0k9In0=;domain=.localhost.com;path=/;
Chrome 从未存储 cookie。但是,当我使用 Rest client extension 并调用相同的网络服务时,cookie 由 Chrome 存储!所以我的 cookie 格式正确,但未使用 ajax 调用存储。
在您对 ajax 的关闭回复中,您可以设置您的 cookie
document.cookie = "token=Custom eyJ0aW1lc3RhbXAiOiIxNDI0NzE5Mzc5ODY3IiwgImlkIjoiNTRlNzZkZGU2ZDk3ZGM1MjYxZjQzMzFlIiwgInNpZ25hdHVyZSI6Im5tZnFGeEEvYlc0TFJGNFJNb3dBZXJZOUw0aWw0aEorcFh1YUt5b3VFK0k9In0=;domain=.localhost.com;path=/";
Can an AJAX response set a cookie?
这可能是 CORS 的问题(跨源资源共享,即 AJAX 调用的客户端域和目标域不是相同)。要使 cookie 在 CORS 配置中正常工作,您需要将 withCredentials
标志设置为 true
。如何做到这一点取决于你 AJAX 库(如果你使用一个)。
我对饼干和 ajax 电话感到疯狂。
我的配置很简单。我 运行 8282 端口上的一个网站,(localhost.com:8282)。我的网站在 8080 端口 (localhost.com:8080) 上调用一些网络服务。当然,我在我的主机文件中添加了一行以避免本地主机问题:
127.0.0.1 localhost.com
我尝试在使用 ajax 调用网络服务时设置 cookie。这是我用 Chrome 调试器可以看到的回复 header :
Set-Cookie:token=Custom eyJ0aW1lc3RhbXAiOiIxNDI0NzE5Mzc5ODY3IiwgImlkIjoiNTRlNzZkZGU2ZDk3ZGM1MjYxZjQzMzFlIiwgInNpZ25hdHVyZSI6Im5tZnFGeEEvYlc0TFJGNFJNb3dBZXJZOUw0aWw0aEorcFh1YUt5b3VFK0k9In0=;domain=.localhost.com;path=/;
Chrome 从未存储 cookie。但是,当我使用 Rest client extension 并调用相同的网络服务时,cookie 由 Chrome 存储!所以我的 cookie 格式正确,但未使用 ajax 调用存储。
在您对 ajax 的关闭回复中,您可以设置您的 cookie
document.cookie = "token=Custom eyJ0aW1lc3RhbXAiOiIxNDI0NzE5Mzc5ODY3IiwgImlkIjoiNTRlNzZkZGU2ZDk3ZGM1MjYxZjQzMzFlIiwgInNpZ25hdHVyZSI6Im5tZnFGeEEvYlc0TFJGNFJNb3dBZXJZOUw0aWw0aEorcFh1YUt5b3VFK0k9In0=;domain=.localhost.com;path=/";
Can an AJAX response set a cookie?
这可能是 CORS 的问题(跨源资源共享,即 AJAX 调用的客户端域和目标域不是相同)。要使 cookie 在 CORS 配置中正常工作,您需要将 withCredentials
标志设置为 true
。如何做到这一点取决于你 AJAX 库(如果你使用一个)。