尝试像这样调用getJSON时
<script>
$("#version").keyup( function() {
var jarName = $("#artifactId").val();
var jarVersion = $("#version").val();
$.getJSON("/xx/yy/zz/"+jarName+"", jarVersion, function(completion) {
$("#version").autocomplete({
source: completion
});
});
});
</script>
具有这样的后端
@RequestMapping(value = "/xx/yy/zz/{jarName}", method = {
RequestMethod.GET}, produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseBody
public List<JsonNode> getVersionsAssociatedwithJar(@PathVariable String jarName, @RequestBody String version) {
我收到400错误的请求错误,网址看起来像这样
xx / yy / zz / jarName?131.31
使用131.31,我在前端输入的内容以及我想要的“版本”参数。我在请求映射中犯了一个简单的错误吗?我以前从未使用过spring,但是发现它很难调试,因为它甚至还没有到达后端
后端记录器给出此消息
[nio-8080-exec-1] .w.s.m.s.DefaultHandlerExceptionResolver : Failed to read HTTP message: org.springframework.http.converter.HttpMessageNotReadableException: Required request body is missing: public java.util.List<com.fasterxml.jackson.databind.JsonNode> com.lendingclub.macgyver.dependency.AppDependencyApiController.getVersionsAssociatedwithJar(java.lang.String,java.lang.String)
答案 0 :(得分:0)
也许尝试将{jarName}
更改为正则表达式(即{jarName:.+}
),因为存在known issues,最后一个@PathVariable
包含点。
在org.springframework.web
上添加TRACE logging可能会很有用,因为您将看到请求进入并遇到任何问题。