java - 调用 AJAX 方法时出现 400(错误请求)
问题描述
我在按钮的 onClick() 事件的帮助下调用 AJAX 方法。
function submitDateFunction()
{
var previousExceptions=new Object();
previousExceptions.batchId=batchId;
previousExceptions.dateFrom=dateFrom;
previousExceptions.dateTo=dateTo;
$.ajax({
type:"POST",
url : 'getPreviousExceptions/',
dataType:'json',
data: JSON.stringify(previousExceptions),
contentType : 'application/json',
success : function(data) {
alert("success");
},
error: function(jqXHR, exception) {
alert(jqXHR.status);
}
});
我的 Spring 控制器方法
@RequestMapping(value={"batchdetails/previousExceptions/getPreviousExceptions"},method=RequestMethod.POST)
@ResponseBody
public List<BatchExceptionDetails> displayPreviousExceptions(@RequestBody PreviousException previousException)
{
...
return batchExceptionDetails;
}
}
这是我以前的异常类
package com.bmdashboard.beans;
import java.util.Date;
public class PreviousException {
private int batchId;
private Date dateFrom;
private Date dateTo;
public PreviousException() {
super();
}
public int getBatchId() {
return batchId;
}
public void setBatchId(int batchId) {
this.batchId = batchId;
}
public Date getDateFrom() {
return dateFrom;
}
public void setDateFrom(Date dateFrom) {
this.dateFrom = dateFrom;
}
public Date getDateTo() {
return dateTo;
}
public void setDateTo(Date dateTo) {
this.dateTo = dateTo;
}
@Override
public String toString() {
return "PreviousException [batchId=" + batchId + ", dateFrom="
+ dateFrom + ", dateTo=" + dateTo + "]";
}
}
调用 JavaScript 函数的按钮
<input type="submit" value="Submit" onclick="submitDateFunction()" >
我通过以下方式获得价值:
var batchId=document.getElementById('batchIdForAjax').innerHTML;
var dateFrom;
var dateTo;
$(function() {
$( "#datepickerFrom" ).datepicker({ dateFormat: "yy-mm-dd" });
$("#datepickerFrom").on("change",function(){
dateFrom = $(this).val();
});
});
$(function() {
$( "#datepickerTo" ).datepicker({ dateFormat: "yy-mm-dd" });
$("#datepickerTo").on("change",function(){
dateTo = $(this).val();
});
});
通过 Google Chrome 开发人员的工具控制台进行调试时,我收到错误 POST http://.../getPreviousExceptions/400 ( Bad Request)。
解决方案
我将 dateFrom 和 dateTo 的数据类型从 java.util.date 更改为 String 并修改了我的 AJAX,如下所示
var previousExceptions = {
"batchId" : batchId,
"dateFrom":dateFrom,
"dateTo":dateTo
};
$.ajax({
type:"POST",
url : 'getPreviousExceptions/',
dataType: 'json',
data: JSON.stringify(previousExceptions),
contentType : 'application/json; charset=utf-8',
success : function(data) {
...
推荐阅读
- python-3.x - 有没有办法使用 POST 从 Python 脚本发送文件,具有特定名称,我可以从 api 捕获?
- javascript - 使用.Net Core MVC,如何将提交“按钮”的值传递给控制器,同时有一个确认对话框?
- python - 我应该如何处理 300 类分类机器学习问题?
- javascript - 如何使用 svg 元素作为实时应用程序提高客户端应用程序的性能?
- javascript - 在javascript中从api解析数据
- gradle - 对 Gradle 删除任务感到困惑
- karate - 如何将参数传递给 karate.call
- c++ - 如何从示例 C 程序发送 HTTP 发布请求
- amazon-web-services - 在 AWS 管理控制台中的何处查看现有 API 网关密钥
- kubernetes - EKS ELB:列表中的奇数实例