我正在尝试学习Spring Framework,为我未来的项目创建RESTful Web服务。到目前为止,我已经尝试使用GET并使用简单的Ajax请求使用它没有问题。我也尝试使用查询字符串输入参数。
截至目前,我正在尝试创建一个接收POST请求的端点。我现在已经研究了几天但是没有用(对于像我这样的初学者来说,有些因素太复杂了。)
这是我的简单代码:
Java Spring
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public String testString(String jsonString)
{
System.out.println(jsonString);
return jsonString;
}
的Ajax
var data = {"name":"John Doe"}
$.ajax({
url: "http://localhost:8080/springrestexample/test",
method:"POST",
data:data,
dataType:'text',
success: function( data ) {
alert(data);
},
error: function( xhr, status, errorThrown ) {
alert("Error:" + errorThrown + status);
}
});
我试过调试tomcat,好像我没有在testString上传递任何值。我需要在我的java代码上添加一些内容吗?
答案 0 :(得分:0)
@RequestMapping
仅将您的方法映射到某个网址。
要访问数据,您需要@RequestParam
注释来获取数据,例如:
@RequestMapping(value = "/test", method = RequestMethod.POST)
@ResponseBody
public String testString(@RequestParam("name") String jsonString)
{
System.out.println(jsonString);
return jsonString;
}
查看this手册以获取更多示例。
答案 1 :(得分:0)
Since you are passing data into body from your ajax request, so you need to retrieve from the
@RequestBody
Add this annotation before the arguments like this way;
public string lang { get; set; }
And you are done :)