2017-10-18 43 views
0

我用的WebAPI的 登录页面在本地主机时,不会有任何错误 但是,当我出版我的网站服务器 我得到这个错误: “的请求的资源不支持HTTP方法 'GET' “错误只是在服务器登录使用的WebAPI

当我使用: [System.Web.Http.AcceptVerbs(” GET”, “POST”)], [System.Web.Http.HttpGet]

误差更改为“对象引用未设置为对象的实例”。

鉴于:

$.ajax({ 
       type: "POST", 
       url: '/Api/Account/Login', 
       data: { 
        __RequestVerificationToken: token, 
        UserName: $("#UserName").val(), 
        Password: $("#Password").val(), 
        RememberMe: $('#RememberMe').is(':checked') 
       }, 
       success: function (result) { 

        window.location.replace('@Url.Action("Index1","Home", new { area = "" })'); 

       }, 
}); 

在行动:

[ValidateAntiForgeryToken] 
    [System.Web.Http.AcceptVerbs("GET", "POST")] 
    [System.Web.Http.HttpGet] 
    public IHttpActionResult Login(UserDto model) 
    { 

     if (!ModelState.IsValid) return BadRequest(ModelState); 

     model.Password = HashPassword.EncodePassword(model.Password); 
     var user = _unitofwork.Users.GetSpecificUser(model.UserName, model.Password); 

     FormsAuthentication.SetAuthCookie(model.UserName, model.RememberMe); 
     LoginLogoutLog(user, LoginOutType.Login); 
     return Ok(); 
    } 

当然,登录完成,但重定向不会发生

回答

0

登录行动应始终在交易后Controller(作为原则,Ajax函数是Post事务)。尝试删除

[System.Web.Http.AcceptVerbs("GET", "POST")] 
[System.Web.Http.HttpGet] 

,并替换它们:

[HttpPost] 
相关问题