我真的很难过。我做了很多研究,没有任何效果。请帮忙。我有一个Spring REST调用和一个jquery ajax PUT和POST方法,它们都给出了400个错误的请求。我已经完成了JSON.stringify,原始对象数据,一切。我似乎无法找到什么是错的,我唯一的线索是一个400错误的请求错误没有堆栈跟踪,没有关于它应该如何被格式化......没有。有没有办法可以获得更多有关错误的信息?它甚至没有到达下面的Spring REST方法的第一行。
Spring REST代码:
@RequestMapping(value = "/supervisor/agent", method=RequestMethod.PUT)
public void updateAgent(@RequestBody AgentDTO agent)
{
try {
AgentDTO sessionAgent = (AgentDTO) session.getAttribute(ADAuthenticationSuccessHandler.SESSION_AGENT);
RestTemplate restTemplate = new RestTemplate();
log.debug("Supervisor updating agent:"+agent);
String allURL = acrURL+"/company/"+sessionAgent.getCompanyGuid()+"/supervisor/"+sessionAgent.getAgentGuid()+"/agent/"+agent.getAgentGuid();
log.debug("Supervisor updating agent url:"+allURL);
agent.setEnabled(Mytime.ENABLED);
restTemplate.put(allURL, agent);
log.debug("Supervisor Agent updated");
} catch (Exception e) {
log.error("Error supervisor updating agent");
e.printStackTrace();
}
}
这是JQuery ajax调用:
function editAgent()
{
console.log("edit agent");
console.log("chosenAgent:"+chosenAgent);
var anAgent = myAgents[chosenAgent];
anAgent.firstName = $('#SDEAFirstName').val();
anAgent.lastName = $('#SDEALastName').val();
anAgent.addressEmail = $('#SDEAEmail').val();
console.log(anAgent);
console.log(anAgent.agentGuid);
// var testData = '{"addressEmail": "agent7@csi.com","agentGuid": "EC165F8A-28F4-4765-BDC5-893722FCF6AA","firstName": "Agent","lastName": "0071","workStatus": "Offline}';
$.ajax({
type : 'PUT',
url : "/mytime.agentdesktop/supervisor/agent",
contentType : "application/json; charset=utf-8",
data: JSON.stringify(anAgent),
dataType : 'json',
success : function(result)
{
console.log("Agent edited:",anAgent.agentGuid);
init = false; // needed to reload agent data. Otherwise, it just grabs it but doesn't update gui
getMyAgents(); // reload agent data now that this agent was deleted
},
error : function(jqXHR, textStatus, errorThrown)
{
console.error("editAgent:status:"+textStatus+" error:", errorThrown);
}
});
editAgentDialog.dialog('close');
}
答案 0 :(得分:2)
@RequestMapping(value = "/supervisor/agent", method=RequestMethod.PUT, consumes = "application/json")
您需要说明您将在控制器中接收哪种类型的数据。
consumes = "application/json"
这样做。