jam*_*uss 6 cookies ajax google-chrome internet-explorer-10 asp.net-web-api
我试图找出为什么Chrome(26.0.1410.64)和IE10似乎无法识别我在ASP.NET Web API控制器的响应中设置的cookie.情况如下:
我的页面上有一个下拉菜单登录表单,它对我的Web API方法进行ajax调用(通过HTTP POST),Web API方法返回一些JSON数据,并在响应中设置一个cookie(使用HTTP头) .它在Firefox和Safari(因此,WebKit)中完美运行,但在Chrome或IE中则无法运行.Chrome和IE似乎完全忽略了在回复中发回的Cookie.我已经验证了(使用Fiddler)在回复时发回了cookie,所以我知道它就在那里 - 我无法弄清楚为什么IE10和Chrome不会接收它.
有任何想法吗?它与Chrome和IE10如何处理ajax请求中的响应cookie有关吗?
jam*_*uss 19
所以我想出了这个问题,虽然这不是我真正想接受的解决方案.我想我只需要处理它并始终使用Firefox在本地计算机上测试该站点.
所以这是问题所在:
当我通过在本地计算机上从Visual Studio和IIS运行本地运行我的站点时,它会创建一个地址,如:http://localhost:1839/.出于某种原因,当它是"localhost"时,IE10和Chrome会忽略ajax cookie - 但是当它是一个真实的主机名或IP地址时却不会被忽略.因此,如果我编辑我的主机文件并创建像localhost.com这样的通用条目并将其指向127.0.0.1:1839,那么IE和Chrome(以及Firefox仍然如此)的一切正常.
当我使用localhost:1839地址时,ajax cookie仅适用于Firefox.
所以我最终做的是将我的网站部署到另一台测试IIS服务器(在另一台机器上),我在本地主机文件中有一个test.mydomain.com条目 - 指向测试IIS服务器的IP地址.现在IE,Chrome和Firefox都接受来自这个伪造的"test.mydomain.com"域的ajax cookie.
因此,对于那些在ajax请求上发送cookie的人 - 请注意Chrome和IE的这个"localhost"问题.
设置 cookie 上的域很可能与使用 localhost 发生冲突。如果您编辑 hosts 文件并添加别名,它将使 test.mydomain.com 指向您的本地计算机:
| 归档时间: |
|
| 查看次数: |
13292 次 |
| 最近记录: |