2017-10-18 47 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] 
相關問題