2012-11-18 84 views
0

我發送POST請求使用JSON這樣的:在JSON POST數據的jQuery Ajax請求設置參數名稱

$.ajax({ 
    type: "POST", 
    url: "myurl.htm", 
    contentType: "application/json", 
    data: '{"val1":"something","stuff":[{"val1":"value1","data":"Someone"}]}', 
    dataType: "json" 
}); 

當我看從這個Network其requet通過以下有效載荷

{"val1":"something","stuff":[{"val1":"value1","data":"Someone"}]}

不過,我想請求負載是:

mydata: {"val1":"something","stuff":[{"val1":"value1","data":"Someone"}]}

因爲我的控制器接受以下幾點:

@RequestMapping(headers ={"Accept=application/json"},value="/myurl.htm", method= RequestMethod.POST) 
public ModelAndView mymethod(
     @RequestParam(value="mydata", required=false) String mydata { 
    logger.info(mydata); 
} 

所以我需要一種方法來簡單地給一個參數名的JSON數據,我發送到服務器作爲POST請求。

+0

嘗試使用'data:'mydate ='+ json_content'?它會發送它像一個職位參數 – POPOL

回答

0

這個怎麼樣?由於json只是一個字符串,你發佈的數據應該工作。

$.ajax({ 
    type: "POST", 
    url: "myurl.htm", 
    contentType: "application/json", 
    data: 'mydata={"val1":"something","stuff":[{"val1":"value1","data":"Someone"}]}', 
    dataType: "text" 
}); 
+0

不,我的控制器不讀取'mydata'作爲參數,如果我這樣做 – birdy

+0

將dataType:「json」更改爲dataType:「text」。你沒有要求Json,你正在發送它。對不起,我沒有看到它......我改變了我的答案。 –