Ajax 如果两个用户调用相同的函数,MVC.NET用户将从其他用户获取数据
我有两个不同的登录用户。我进入两个帐户的同一页面,同时点击刷新 在该页面上,我有一个ajax调用,它调用函数:Ajax 如果两个用户调用相同的函数,MVC.NET用户将从其他用户获取数据,ajax,asp.net-mvc,Ajax,Asp.net Mvc,我有两个不同的登录用户。我进入两个帐户的同一页面,同时点击刷新 在该页面上,我有一个ajax调用,它调用函数: public JsonResult GetAppointments() { var userId = User.Identity.GetUserId(); var eventList = from a in db.Appointments where a.UserId == userId
public JsonResult GetAppointments()
{
var userId = User.Identity.GetUserId();
var eventList = from a in db.Appointments
where a.UserId == userId
select new
{
...
因此,它应该根据用户ID返回不同的约会
但由于某些原因,一个用户从另一个用户获取数据。(在第页,我得到了两个用户的相同数据)
它看起来像是来自第一个用户占用的线程的函数调用,第二个用户从该线程而不是从他的函数调用中获取数据
有人知道这是怎么可能的,为什么会发生
编辑:
当这种情况发生时,我点击第二个用户的注销,得到:“防伪cookie令牌和表单字段令牌不匹配。”错误。似乎第二个用户不知何故也从第一个用户那里得到了表单字段令牌,但不知道如何得到。我发现了这个问题
在控制器上,我有:
OutputCache(NoStore = true, Duration = 1, VaryByParam = "")
我更改了Duration=0,现在一切正常。这与您的方法无关。在两个不同的浏览器中同时尝试。您可能已注销并使用另一个选项卡登录,并与以前的帐户保持打开状态。这就是为什么你会得到相互矛盾的结果。是的,我在两个不同的浏览器中同时尝试了它,用两个不同的帐户登录,然后转到同一个页面,然后发现了这个问题。我之前清除了缓存和cookies,并进行了多次测试,以确保问题存在,并且每次都会发生