2015-02-11 16 views
1

我試圖在spring MVC中學習jQuery AJAX,並且我試圖將一個值從視圖傳遞給控制器​​,並在控制檯中打印該值控制器,我想稍後學習如何在控制器中更改該值,然後將其傳遞給我的視圖,但現在我有400個錯誤的請求。在spring中使用jQuery ajax傳遞一個html頁面的值mvc

這是我的控制器方法

@RequestMapping(value = "formNormal", method = RequestMethod.GET) 
    public String formNormal(Model model) { 

     return "formNormal"; 
    } 

    @RequestMapping(value = "formNormal", method = RequestMethod.POST) 
    public @ResponseBody String jsonMethod(@RequestBody String name) { 

     String controllerVariable = name; 
     System.out.println("controller variable value is " + controllerVariable); 

     return controllerVariable; 
    } 

,這是我的網頁formNormal.html

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script> 



    <script type="text/javascript"> 

     function doAjaxPost() 
     { 
      // get the form values 
      var name = $('#name').val(); 
      var json = {"name" : name}; 

      $.ajax(
      { 
       type: "POST", 
       url: "formNormal", 
       data: JSON.stringify(json), 
       cache: false, 
       beforeSend: function(xhr) 
          { 
           xhr.setRequestHeader("Accept", "application/json"); 
           xhr.setRequestHeader("Content-Type", "application/json"); 
          }, 
       success: function(response) 
         { 
          alert(response); 
          $('#name').val(''); 
         }, 
       error: function (xhr, ajaxOptions, thrownError) 
         { 
          alert(xhr.status); 
          alert(xhr.responseText); 
          alert(thrownError); 
         } 
      }); 
     } 
     </script> 
    <fieldset> 
    <legend>Name in view</legend> 


     Name in view: <input type="text" name="name"> 

     <br> 

     <input type="button" value="Add Users" onclick="doAjaxPost()"> 
    </fieldset> 

<br> 

編輯**我的數據更改爲data: JSON.stringify(json),,我不再有400錯誤,我改成成功塊:

`success: function(response) 
         { 

          alert("Name: "+response); 
          $('#name').val(''); 
         },` 

它打印我[object Object ]中,在我的eclipse控制檯中,名稱變量值是{}

回答

0

嘗試data: JSON.stringify(json)。您需要首先將您的JavaScript變量轉換爲JSON字符串。

+0

謝謝我不再有400錯誤,但現在變量名是空的,我的控制檯不打印一個值,我得到一個警告,說:「名稱:undefined」 – stackUser2000 2015-02-11 20:19:08

+0

你可以確認你的控制器代碼現在得到的值?警報來自你的成功回調,所以我相信你的控制器方法會被調用。你能否警惕(迴應)成功並讓我知道? – 2015-02-11 20:23:01

+0

我把這一行添加到我的成功塊,如下所示:'成功:功能(響應) {0}(「Name:」+ response.name); $('#name')。val(''); 提醒(響應) },' 和警報顯示'[object Object]'和我在eclipse中的控制檯顯示'{}'是我變量的值 – stackUser2000 2015-02-11 20:29:24

相關問題