我正在发送POST请求:
var arr = { State: 'Moscow', Age: 25 };
var url = "/google/modifiedPolygon";
$.ajax({
url: url,
type: 'POST',
data: arr,
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function() {
alert("msg");
}
});
从后端处理:
@RequestMapping(value="/modifiedPolygon",method = RequestMethod.POST,consumes = "application/json")
public void modifiedPolygon(@RequestBody JSONObject data, HttpServletRequest request, ModelMap model) {
System.out.println(data);
}
但我收到以下错误:
org.springframework.http.converter.HttpMessageNotReadableException:
无法读取JSON:无法识别的令牌“状态”:正在等待 ('true','false'或'null')
答案 0 :(得分:0)
看起来状态是服务端的布尔类型,但是您将字符串值作为状态发送。因此,验证状态服务exepcting的数据类型。
答案 1 :(得分:0)
你可以这样使用,
var arr = { state: 'Moscow', age: 25 };
var url = "/google/modifiedPolygon";
$.ajax({
url: url,
type: 'POST',
data: { "dataValue": JSON.stringify(arr)},
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function() {
alert("msg");
}
});
现在,您可以从body param中获取backEnd中的“dataValue”。
答案 2 :(得分:0)
我尝试过以下Java实现,看起来很有效。
@RequestMapping(value="/modifiedPolygon",method = RequestMethod.POST,consumes = "application/json")
public ResponseEntity<JSONObject> modifiedPolygon(@RequestBody JSONObject data, HttpServletRequest request, ModelMap model) {
return new ResponseEntity<JSONObject>(data,HttpStatus.OK);
}
首先使用POSTMAN或curl进行测试,如果问题仍然存在,请尝试使用此功能。
var arr = { state: 'Moscow', age: 25 };
var url = "/google/modifiedPolygon";
$.ajax({
url: url,
type: 'POST',
data: JSON.stringify(arr),
contentType: 'application/json; charset=utf-8',
dataType: 'json',
async: false,
success: function() {
alert("msg");
}
});
请启用CORS过滤器。
以下是工作快照。
将此依赖项添加到pom.xml
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
请在此处找到java代码更改