2014-11-14 70 views
0

我想用我的彈簧MVC應用AJAX,但無法找到我犯錯的地方。我嘗試遵循幾個教程,但無法自定義我的工作。它總是處於錯誤狀態。提交ajax使用錨標籤彈簧mvc控制器

所以這是我的Ajax調用

function doAjax() { 
    var username = $('#username').val(); 
    var email = $('#email').val(); 
    var password = $('#password').val(); 

    var json = { 
      "username" : useranme, 
      "email" : email, 
      "password" : password 
    } 
    //alert("username: " + username + " email: " + email + " password: " + password); 

    $.ajax({ 
     type: "POST", 
     url: $('form').attr('action'), 
     data: JSON.stringify(json), 
     dataType: "JSON", 

     success: function(data) { 
     }, 
     error:function(data, status, err) { 
      alert("error"); 
     } 
    }); 
}; 

這是我的表格:

<div class="form"> 
     <spring:url var="registerUrl" value="http://localhost:9004/Project/register" htmlEscape="true" /> 
     <form method="post" action="${registerUrl}"> 
      <div class="form_field"> 
       <label for="username">Username</label><br/> 
       <input class="field" id="username" type="text" name="userName" autocomplete="off"/> 
      </div> 
      <div class="form_field"> 
       <label for="email">Email</label><br/> 
       <input class="field" id="email" type="email" name="email" autocomplete="off" /> 
      </div> 
      <div class="form_field"> 
       <label for="password">Password</label><br/> 
       <input class="field" id="password" type="password" name="password" /> 
      </div> 
      <div class="form_field prefix_clear"> 
       <input type="hidden" name="${_csrf.parameterName}" value="${_csrf.token}" /> 
       <input id="submit" class="action_button" type="submit" value="Register"/> 
      </div> 
     </form> 
     <a href="#" id="button12" onClick="doAjax()" class="action_button">Click me</a> 
    </div> 

所以,如果我使用輸入提交表單,它完美的作品。但是,當我嘗試使用錨標籤提交它時,它不起作用。請幫忙。

回答

0

爲了讓您的AJAX調用的工作完全一樣的表單提交應該的,你的,而不是使用JSON,只需更換您的數據:JSON.stringify

data:$("form").serialize(); 

如果你必須做出一個請求與JSON數據相比,你將不得不使用映射方法和命令對象來編輯你的問題以獲得幫助,但是有一點你的代碼顯然是錯誤的,那就是你沒有在你的ajax中包含參數_csrf要求