2013-10-27 173 views
1

到Spring MVC的控制器如何我normaly阿賈克斯 數據傳遞到MVC控制器動作現在在我的JS文件通數據阿賈克斯

$.ajax({ 
    type: "POST", 
    url:url, 
    data:  { 
      start_date: scheduler.getEvent(id).start_date, 
      end_date: scheduler.getEvent(id).end_date, 
      text: scheduler.getEvent(id).text, 
      userId: userId 
    }, 
    success:function(result){ 
     if(combo.getActualValue() != null){ 
      getUserEvents(id); 
     } 
     else{ 
      $.ajax({ 
       url:"/WebElanceSh/events", 
       success:function(result){ 
        json = result; 
        scheduler.parse(json, "json"); 
       } 
      }); 
     } 
    } 
}); 

,並在我的控制器

@RequestMapping(value = "events/add/", method = RequestMethod.POST) 
public void addEvent(@RequestBody String start_date, 
        @RequestBody String end_date, 
        @RequestBody String text, 
        @RequestBody Integer userId){ 
    Event event = new Event(text,start_date,end_date); 

    if(userId == -1){ 
     TestData.getInstance().AddEvent(-1, event); 

    } 
    else { 
     TestData.getInstance().AddEvent(userId, event); 

    } 

} 

但是我有始終有 加載資源失敗:服務器響應的狀態爲415(不支持的介質類型)

+0

正在'url:url'中傳遞'url'嗎? –

+0

該網址是正確的。 – nabiullinas

+0

你在通過第二次ajax呼叫通過什麼。那個在else語句中? –

回答

1

模擬與ajax請求匹配的對象,然後使用它作爲請求參數:#

public class MyCommandObject { 
    private Date start_date; 
    private Date end_date; 
    private String text; 
    private Integer userId; 

    /** Constructor wihtout parameter needed. */ 
    public MyCommandObject() {} 

    Getter and Setter 
} 


@RequestMapping(value = "events/add/", method = RequestMethod.POST) 
public void addEvent(@RequestBody MyCommandObject command){ ... } 
+0

我是這樣做的,但是現在我花了400個錯誤( – nabiullinas

+0

也許你的日期不是在Spring中預期的那種格式,試着在'MyCommandObject'中使用'String'而不是'Date'類型。 – Ralph

+1

當然,你必須將json jack libary添加到你的應用程序中 – Ralph