2012-11-18 75 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,你正在发送它。对不起,我没有看到它......我改变了我的答案。 –