Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ASP.Net中设置cookie,但jQuery似乎忽略了它_Jquery_Asp.net_Cookies - Fatal编程技术网

在ASP.Net中设置cookie,但jQuery似乎忽略了它

在ASP.Net中设置cookie,但jQuery似乎忽略了它,jquery,asp.net,cookies,Jquery,Asp.net,Cookies,我有一个ASP.NET应用程序,它使用jQuery和一个自制的选项卡面板来在回发之间保留当前选项卡。我正在使用Cookie加载项。它工作得非常好和可靠 我们添加了一个功能,点击一个选项卡a上的链接会导致服务器做一些改变另一个选项卡B上显示的事情。因此,当页面返回时,用户希望选项卡B是最新的。最简单的方法似乎是让ASP.Net将当前选项卡cookie设置为选项卡B的值。我使用以下代码执行此操作: Response.SetCookie(New HttpCookie("current-tab", Ht

我有一个ASP.NET应用程序,它使用jQuery和一个自制的选项卡面板来在回发之间保留当前选项卡。我正在使用Cookie加载项。它工作得非常好和可靠

我们添加了一个功能,点击一个选项卡a上的链接会导致服务器做一些改变另一个选项卡B上显示的事情。因此,当页面返回时,用户希望选项卡B是最新的。最简单的方法似乎是让ASP.Net将当前选项卡cookie设置为选项卡B的值。我使用以下代码执行此操作:

Response.SetCookie(New HttpCookie("current-tab", HttpUtility.UrlEncode("#Tabs-Planning")))
这在我的机器上可以正常工作,但在测试服务器上却不行。除非另有说明,以下是测试服务器上下文中的奇怪部分:

jQuery继续可靠地加载和设置cookie;这就好像服务器集cookie从未发生过一样。如果单击选项卡A上的按钮,则在重新加载时检索到的cookie将选项卡A显示为当前选项卡,即使服务器将cookie设置为选项卡B

我知道它这样做了,或者做了些什么,因为IE开发者工具显示cookie包含选项卡B的值

无论单击哪个选项卡,开发人员工具都会显示包含选项卡B值的cookie。我正在单击菜单选项以反复查看cookie,而不是刷新cookie显示页面,因此我应该始终获取当前cookie。但是,如果发回时您在选项卡A上,调试Javascript将显示检索到的值是选项卡A

无论使用哪种方法设置cookie,cookie显示页面都会将cookie显示为具有.com域。显然,这不是实际的领域

除了域之外,我看不出我的机器设置的cookie和测试服务器设置的cookie之间有什么区别

我看不出服务器设置的cookie和jQuery设置的cookie之间有什么区别

我已经尝试了我能想到的一切。是否有服务器设置或缓存的东西可以解释这一点?我以前从来没有机会在ASP.Net中设置cookies:也许有一些我不知道的东西需要设置

ETA:我后来发现,问题的一部分是,在测试服务器上,应用程序从根目录向下运行,因此服务器需要设置它在客户端上自动设置的路径


这在Chrome上解决了问题,但我在IE上仍然有同样的问题。我被指示暂时关注其他事情,并在本周晚些时候返回。尝试将expires和path属性添加到cookie中,看看这是否有帮助。

您的cookie上的HttpOnly属性是否可能被设置为true?这可以解释为什么将值发送到客户端,但jQuery不知道新值。@RossiDead是个好主意,但结果是它设置为false。我用发帖后发现的东西更新了这个问题。