2017-01-01 50 views
0

今天我正在嘗試Web Api 2登錄和註冊操作。我使用的是Visual Studio 2015中的標準模板。我在網頁上創建了JavaScript客戶端,但沒有看到提醒,註冊不起作用。Web Api 2登錄和註冊操作,JavaScript問題

這裏是我的代碼:

<div class="form-group"> 
<div class="input-group"> 
    <input type="email" class="form-control" placeholder="Email" id="email"> 
</div> 
</div> 
<div class="form-group"> 
<div class="input-group"> 
    <input type="password" class="form-control" placeholder="password" id="password"> 
</div> 
</div> 
<div class="form-group"> 
<div class="input-group"> 
    <input type="password" class="form-control" placeholder="Password again" id="confirmpassword"> 
</div> 
</div> 
<div class="form-group"> 
<div class="input-group"> 
    <input type="submit" id="submit" value="Register" class="btn btn-info"> 
</div> 

@section scripts{ 
@Scripts.Render("~/bundles/jqueryval") 
<script> 
    $(function() { 
     $('#submit').click(function (e) { 
      e.preventDefault(); 
      var data = { 
       Email: $('#email').val(), 
       Password: $('#password').val(), 
       ConfirmPassword: $('#confirmpassword').val() 
      }; 

      $.ajax({ 
       type: 'POST', 
       url: '/api/Account/Register', 
       contentType: 'application/json; charset=utf-8', 
       data: JSON.stringify(data) 
      }).success(function (data) { 
       alert("Registration success"); 

      }).fail(function (data) { 
       alert("Error message"); 
      }); 
     }); 
    }) 
</script> 
} 

更新: 下面是登錄過程代碼:

div class="userInfo" style="display:none;"> 
<p>You are loged in as: <span class="userName"></span></p> 
<input type="button" value="Log out" id="logOut" /> 
</div> 
<div class="loginForm"> 
<h3>Log in</h3> 
<label>Enter email</label><br /> 
<input type="email" id="emailLogin" /> <br /><br /> 
<label>Password</label><br /> 
<input type="password" id="passwordLogin" /><br /><br /> 
<input type="submit" id="submitLogin" value="Log in" /> 
</div> 
@section scripts{ 
<script type="text/javascript"> 
$(function() { 
    //........................... 

    var tokenKey = "tokenInfo"; 
    $('#submitLogin').click(function (e) { 
     e.preventDefault(); 
     var loginData = { 
      grant_type: 'password', 
      username: $('#emailLogin').val(), 
      password: $('#passwordLogin').val() 
     }; 

     $.ajax({ 
      type: 'POST', 
      url: '/Token', 
      data: loginData 
     }).success(function (data) { 
      $('.userName').text(data.userName); 
      $('.userInfo').css('display', 'block'); 
      $('.loginForm').css('display', 'none'); 
      // store sessionStorage auth token 
      sessionStorage.setItem(tokenKey, data.access_token); 
      console.log(data.access_token); 
     }).fail(function (data) { 
      alert('Error on login'); 
     }); 
    }); 

    $('#logOut').click(function (e) { 
     e.preventDefault(); 
     sessionStorage.removeItem(tokenKey); 
    }); 
}) 
</script> 
} 

更新2 在登記這裏是F12控制檯代碼:

(index):88 Uncaught TypeError: $.ajax(...).success is not a function 
at HTMLInputElement.<anonymous> ((index):88) 
at HTMLInputElement.dispatch (jquery-3.1.1.js:5201) 
at HTMLInputElement.elemData.handle (jquery-3.1.1.js:5009) 
(anonymous) @ (index):88 
dispatch @ jquery-3.1.1.js:5201 
elemData.handle @ jquery-3.1.1.js:5009 

但註冊通行證和我在數據庫中的新紀錄。任何人都可以解釋我是什麼意思?

+2

你能否提供更多信息?行動正在襲擊?如果行動正在被擊中是否值正確?瀏覽器開發工具(F12)中是否有任何錯誤?你的動作和視圖模型代碼在哪裏?問候。 – dime2lo

+0

@ dime2lo,感謝您的關注,沒有錯誤,註冊通過成功,有一些登錄問題我現在會登錄過程中,登錄給我400錯誤,在註冊過程.success(功能(數據){ alert(「註冊成功「);不工作,頁面不顯示任何信息,單擊按鈕後我只能在數據庫中看到新用戶 –

+0

@ dime2lo非常感謝我解決了問題我已經使用完成,而不是成功 –

回答

1

做這樣的:

$.ajax({ 
    type: 'POST', 
    url: '/api/Account/Register', 
    contentType: 'application/json; charset=utf-8', 
    data: JSON.stringify(data) 
    success: function(html){ 
    alert("Registration success"); 
    } 
});