Jquery MVCAJAX调用有时在登录后停止工作

Jquery MVCAJAX调用有时在登录后停止工作,jquery,asp.net,ajax,asp.net-mvc,Jquery,Asp.net,Ajax,Asp.net Mvc,我有一个ajax调用来刷新在线好友,当我启动应用程序时,它可以正常工作。但如果我登录,它有时会停止工作(大部分时间,但不是所有时间) 使用asp-net-mvc5: $(document).ready(function () { //change the scroll bar jQuery('#chatlist').slimScroll({ color: '#00f', size: '10px',

我有一个ajax调用来刷新在线好友,当我启动应用程序时,它可以正常工作。但如果我登录,它有时会停止工作(大部分时间,但不是所有时间)

使用asp-net-mvc5:

    $(document).ready(function () {
        //change the scroll bar
       jQuery('#chatlist').slimScroll({
          color: '#00f',
          size: '10px',
          width: '50px'
       });
       //set periodic refresh of online friends
       var refreshId3 = setInterval("updateOnlineFriendsArea2()", 4000);
    });

   function updateOnlineFriendsArea2() {
      $.ajax({
           url: "/Home/GetOnlineFriedns/",
           dataType: 'json',
           async: true,
           success: function (data) {
                $("#message").html += "Fetching online friends...";
                $("#friendlist").html("");
                var x;
                if (data.length > 0) {
                    for (x in data) {
                      $("#friendlist").html(
                      $("#friendlist").html() +
                      "<li>" +
                      data[x].Username + "</li>");
                    }
               }
               else {
                    $("#chatarea").html("<p>No Messages</p>");
               }
           },
           error: function (XMLHttpRequest, textStatus, errorThrown) {
             alert(errorThrown);
           }
       });

       $("#message").html("Messages loaded.");
    }
$(文档).ready(函数(){
//更改滚动条
jQuery(“#聊天列表”).slimScroll({
颜色:“#00f”,
尺寸:“10px”,
宽度:“50px”
});
//设置定期刷新联机好友
var refreshId3=setInterval(“updateOnlineFriendsArea2()”,4000);
});
函数updateOnlineFriendsArea2(){
$.ajax({
url:“/Home/GetOnlineFriedns/”,
数据类型:“json”,
async:true,
成功:功能(数据){
$(“#消息”).html+=“获取在线朋友…”;
$(“#朋友列表”).html(“”);
var x;
如果(data.length>0){
对于(数据中的x){
$(“#好友列表”).html(
$(“#好友列表”).html()+
“
  • ”+ 数据[x]。用户名+“
  • ”; } } 否则{ $(“#聊天区”).html(“无消息”

    ”; } }, 错误:函数(XMLHttpRequest、textStatus、errorshown){ 警报(错误抛出); } }); $(“#message”).html(“已加载邮件”); }
    引发错误的登录控制器方法:

        [HttpPost]
        [AllowAnonymous]
        [ValidateAntiForgeryToken]
        public async Task<ActionResult> Login(LoginViewModel model, string returnUrl)
        {
            if (ModelState.IsValid)
            {
                // Validate the user password
                if (await Secrets.Validate(model.UserName, model.Password))
                {
                    string userId = await Logins.GetUserId(IdentityConfig.LocalLoginProvider, model.UserName);
                    await SignIn(userId, model.RememberMe);     
                    //test
                    LoginHelpers.LogUser(User.Identity.GetUserName());
                    return RedirectToLocal(returnUrl);
                }
            }
    
            // If we got this far, something failed, redisplay form
            ModelState.AddModelError(String.Empty, "The user name or password provided is incorrect.");
            return View(model);
        }
    
    [HttpPost]
    [异名]
    [ValidateAntiForgeryToken]
    公共异步任务登录(LoginView模型,字符串返回URL)
    {
    if(ModelState.IsValid)
    {
    //验证用户密码
    if(等待Secrets.Validate(model.UserName、model.Password))
    {
    字符串userId=await Logins.GetUserId(IdentityConfig.LocalLoginProvider,model.UserName);
    等待登录(userId,model.RememberMe);
    //试验
    lognhelpers.LogUser(User.Identity.GetUserName());
    返回重定向到本地(returnUrl);
    }
    }
    //如果我们走到这一步,有些东西失败了,重新显示形式
    AddModelError(String.Empty,“提供的用户名或密码不正确”);
    返回视图(模型);
    }
    
    控制器上的联机好友方法:

        [HandleError]
        [AllowAnonymous]
        public JsonResult GetOnlineFriedns()
        {
            UserProfile user = Profiles.GetProfileByUsername(this.HttpContext.User.Identity.Name);
            var result = new LinkedList<object>();
            if (user != null)
            {
                //Microsoft.AspNet.Identity.IUserLogin teste;
                var onlineFriends = ChatMessages.GetOnlineFriedns(user.ID);
                if (onlineFriends != null)
                    foreach (var friend in onlineFriends)
                    {
                        result.AddLast(new { Username = friend.Username });
                    }
                return Json(result, JsonRequestBehavior.AllowGet);
            }
            return Json(result, JsonRequestBehavior.AllowGet);
        }
    
    [HandleError]
    [异名]
    公共JsonResult GetOnlineFriedns()
    {
    UserProfile user=Profiles.GetProfileByUsername(this.HttpContext.user.Identity.Name);
    var result=new LinkedList();
    如果(用户!=null)
    {
    //Microsoft.AspNet.Identity.IUserLogin teste;
    var onlineFriends=ChatMessages.getonlinefriends(user.ID);
    if(onlineFriends!=null)
    foreach(在线好友中的var friend)
    {
    result.AddLast(新的{Username=friend.Username});
    }
    返回Json(结果,JsonRequestBehavior.AllowGet);
    }
    返回Json(结果,JsonRequestBehavior.AllowGet);
    }
    
    错误显示为:

    语法错误:输入意外结束

    我完全迷路了,不知道是什么问题:

    • 登录时的任务
    • 重定向和部分
    • 糟糕的ajax配置

    你能把你的
    GetOnlineFriedns
    action.edited的代码贴出来吗?我忘了把它放在手上