当您期望空结果时,如何防止从 java 服务器端返回 400 代码?
How to prevent a 400 code being returned from java server side when you expect an empty result?
我有一个 ajax 对服务器端 java servlet 的调用,空响应非常有效。但是,我也收到 400 错误代码。问题在于 400 错误填满了我的 report-uri 日志,因此很难找到任何 'real' 错误。有什么办法可以防止400码吗
ajax 调用是:
$.ajax({
url : 'NewsDispView',
data : {
ssAccountLevel : sessionStorage.getItem('ssAccountLevel'),
ssAccountID : sessionStorage.getItem('ssAccountID'),
ssGroupID: sessionStorage.getItem('ssGroupID'),
ssGroupSection: sessionStorage.getItem('ssGroupSection'),
},
type : 'POST',
cache: false,
})
.fail (function(jqXHR, textStatus, errorThrown) {
// alert(jqXHR.responseText);
if(jqXHR.responseText.includes('No News')){
alert("No news");
}else{
alert("News");
}
var marquee = "<span class='glyphicon glyphicon-forward'>";
marquee += " No notices ";
marquee += "<span class='glyphicon glyphicon-forward'>";
$("#newsMarquee").empty();
$('#newsMarquee').append(marquee);
})
.done(function(responseJson1a){
// JSON response to populate the activities table
dataType: "json";
//alert(JSON.stringify(responseJson1a));
//do stuff
})
servlet return 是:
if (newsList == null || newsList.isEmpty()) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No News.");
} else {
String json = new Gson().toJson(newsList);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
您也可以将错误消息以 JSON 格式 传递给您的 ajax 调用。因此,生成您的 json 然后像下面那样传递它:
if (newsList == null || newsList.isEmpty()) {
String json = new Gson().toJson(yourjson);
} else {
String json = new Gson().toJson(newsList);
}
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
然后,检查您的 ajax 代码是否响应有密钥,即:error
并相应地更改您的 ajax 逻辑。
我有一个 ajax 对服务器端 java servlet 的调用,空响应非常有效。但是,我也收到 400 错误代码。问题在于 400 错误填满了我的 report-uri 日志,因此很难找到任何 'real' 错误。有什么办法可以防止400码吗
ajax 调用是:
$.ajax({
url : 'NewsDispView',
data : {
ssAccountLevel : sessionStorage.getItem('ssAccountLevel'),
ssAccountID : sessionStorage.getItem('ssAccountID'),
ssGroupID: sessionStorage.getItem('ssGroupID'),
ssGroupSection: sessionStorage.getItem('ssGroupSection'),
},
type : 'POST',
cache: false,
})
.fail (function(jqXHR, textStatus, errorThrown) {
// alert(jqXHR.responseText);
if(jqXHR.responseText.includes('No News')){
alert("No news");
}else{
alert("News");
}
var marquee = "<span class='glyphicon glyphicon-forward'>";
marquee += " No notices ";
marquee += "<span class='glyphicon glyphicon-forward'>";
$("#newsMarquee").empty();
$('#newsMarquee').append(marquee);
})
.done(function(responseJson1a){
// JSON response to populate the activities table
dataType: "json";
//alert(JSON.stringify(responseJson1a));
//do stuff
})
servlet return 是:
if (newsList == null || newsList.isEmpty()) {
response.sendError(HttpServletResponse.SC_BAD_REQUEST, "No News.");
} else {
String json = new Gson().toJson(newsList);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
}
您也可以将错误消息以 JSON 格式 传递给您的 ajax 调用。因此,生成您的 json 然后像下面那样传递它:
if (newsList == null || newsList.isEmpty()) {
String json = new Gson().toJson(yourjson);
} else {
String json = new Gson().toJson(newsList);
}
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);
然后,检查您的 ajax 代码是否响应有密钥,即:error
并相应地更改您的 ajax 逻辑。