javascript - 无法使用 ajax 提交表单时收到警报
问题描述
我有一个用户请求休息日的表格,在我的服务器端,我有功能来检查是否有超过 3 个人要求同一天休息,如果他们有,则不会让用户在当天请求。当他们当天无法请求时,我想显示一个弹出窗口/警报
这是我在控制器中的方法
if(results.size() >3)
{
System.out.println("Too many people asked for that day off");
return new ModelAndView("request");
}
else
{
Request request = new Request();
request.setDate(newDate);
request.setNumDays(numDays);
request.setReason(reason1);
ModelAndView mv = new ModelAndView("successRequest");
mv.addObject("request", request);
requestService.save(request);
return mv;
}
当那天有超过 3 个请求时,它会返回一个空表单,但我也希望它有一条警报消息,我尝试使用 ajax 在我的 jsp 页面上执行此操作
$('#form').submit(function(e)
{
$.ajax({
type:'POST',
url:"/request",
data:$(this).serialize(),
error: function(){
window.alert("Too many people have asked for that day off");
console.log("Error");
}
});
});
解决方案
AJAX 期望JSON
响应而不是ModelAndView
对象。
所以首先要做的是使用@ResponseBody
而不是ModelAndView
Object 返回 JSON 响应。
然后根据标志值,您可以向用户显示警报。
推荐阅读
- android - 使用 Android Studio 创建 SQLite DB 时出现数据库锁定错误
- java - 使用java中的堆栈在中缀表达式中创建括号
- c - c中的二分法程序为什么在if语句之前需要while?
- java - 为什么一个嵌套的while循环比另一个嵌套的while循环快?
- visual-c++ - 发布版本 MSVC 的调试符号
- nestjs - 带有 typeorm 和 class-validator 的 NestJS 实体中的 DRY 原则
- excel - 通过 VBA 从 Excel 复制后以 word 格式设置表格
- javascript - swagger 中数组 POST 的空 JSON 参数
- php - 我是否在 PHP 中输入所有内容?
- java - 循环变量的Java斐波那契