我对浏览器发送的JSONP和cookies有问题。
实际上,我有两个网站: server1和server2。我希望我的用户在server1上进行身份验证,当他们访问server2时,我想检查(通过对server1的Javascript JSONP调用)他们是否通过了身份验证。
server1上的身份验证由cookies管理,我认为当我通过JSONP调用server1时,浏览器会发送cookies,然后身份验证就会起作用。但是在通过JSONP发送请求时,浏览器(FF)似乎不会将cookies发送到server1。
有人知道浏览器在使用JSONP请求时是否会发送cookie吗?如果不是这样,如果用户在server2的server1上进行身份验证,那么在Javascript中签入更好的解决方案是什么?
谢谢你的回答,
文森
发布于 2011-07-12 16:37:07
这取决于这些服务器的域名。如果它们是server1.example.com和server2.example.com,您可以将cookie设置为依赖于域.example.com。然后是发送到两个服务器的cookie。
如果你不能像我写的那样做,你将不得不做一些变通。例如通过iFrame。
发布于 2012-01-24 14:23:52
我同意@Jakub所说的,并进一步解释在你的情况下可能会发生什么。我假设你的域名是server1.com和server2.com
因此,如果您从server2.com上的应用程序设置cookie,并从server1.com向server1.com上的应用程序发出JSONP请求,它将发送cookie(如果它们是先前从server1.com设置的)。否则,它将不会发送任何由server2.com设置的cookie。实际上,浏览器正在从server2.com的应用程序向server1.com发出请求,这与server2.com从CDN或任何其他服务器请求JavaScript文件完全相同。因此,它不会发送任何server2.com cookie,否则它将成为浏览器的大安全问题。
希望这是有意义的。
https://stackoverflow.com/questions/4223255
复制相似问题