【发布时间】:2018-03-04 08:42:13
【问题描述】:
Spark 最近表现得很奇怪。我有一个按钮,单击该按钮会调用带有一些查询参数的 POST 方法:
post("/test", (request, response) -> {
model.put("reason", "some reason here");
...
LOG.info("Returning from /test with reason: " + model.get("reason"));
// the above line always executes and always prints the correct output (never 404)
return new ModelAndView(model, "test.vtl");
}, new VelocityTemplateEngine());
文件test.vtl 仅包含以下内容:$reason
(在下面的 JS 代码中使用它来显示带有 model 映射中 reason 键内容的警报)。
JS相关代码:
xmlHttp.open("POST", "/test", true);
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var params = "file=" + file + "&searchStr=" + searchStr;
xmlHttp.onreadystatechange = function() {
if (xmlHttp.readyState == XMLHttpRequest.DONE) {
alert(xmlHttp.responseText);
}
}
xmlHttp.send(params);
当我单击它时,有时它可以正常工作,当我再次单击时,我得到一个 404 Not Found :
MatcherFilter:152 - 请求的路由 [/test] 尚未在 Spark 中映射
这会在几秒钟内发生。我点击 - 它有效 - 如果失败,我再次点击 - 再次失败 - 再次失败 - 再次突然成功......
怎么可能?
附:我已经在 post 请求中登录,所以我知道 Spark 实际上正在访问它。但它并没有从中返回。这是否可能与代码 inside post 突然引发 404 (虽然我没有从它访问其他页面)。
【问题讨论】:
标签: javascript java post http-status-code-404