gpt4 book ai didi

java - Spring 3.1 Controller 不接受 ajax post

转载 作者:行者123 更新时间:2023-11-29 08:47:15 25 4
gpt4 key购买 nike

我正在使用 spring 3.1 MVC 创建一个 AJAX 表单。我很困惑,并在互联网和 stackoverflow 上搜索了我的问题的解决方案,但到目前为止还没有成功。我也在使用 Tiles 2.2.2

我收到警告:不支持请求方法“POST”

Controller 方法




 @RequestMapping(value="/createProject", method=RequestMethod.POST,headers ="Accept:*/*")
public @ResponseBody Project createProject(@RequestBody Project project){
尝试 {
projectBusiness.createProject(项目);
} catch (异常 e){
e.printStackTrace();
}
返回项目;
}
@RequestMapping(value="/createProject", method=RequestMethod.GET)
公共(public) ModelAndView displayCreateProjectForm(){
ModelAndView mav = new ModelAndView("createProject");
mav.addObject("项目", 新项目());
返航;
}

我的 JSP

   $(function() {

var url = $('#myForm').attr('action'); //http://localhost:7001/ProjectPortfolioTracker/app/projects/createProject
$('#submitForm').click(function(e){
console.log("hello");
e.preventDefault();
var formData = $('#myForm').serialize();
alert(formData);

console.log('in form click');
$.ajax({
type: 'POST',
url: url,
data:formData,
success: function(){
alert('success');
},error: function(){
alert('failure');
},
}).done(function() {
alert("ajax post completed");
});

});
});

<body>
<h1>Create a Project</h1>
<table>
<form method="post" action="${pageContext.request.contextPath}/app/projects/createProject" id="myForm">
<tr>
<td>Description: </td><td><textarea id="description" name="description" ></textarea></td>
</tr>
<tr>
<td>Category:</td>
<td>
<select name="category">
<option value="marketing">Marketing</option>
<option value="sales">Sales</option>
<option value="accounting">Accounting</option>
</select>
</td>
</tr>
<tr>
<td>Estimated Duration:(in days)</td><td><input id="durationSlider" type="range" min="1" max="90" step="1" value="1"/></td><td><input type="text" id="durationValue" name="estimatedduration" readonly/></td>
</tr>
<tr>
<td>Estimated Cost:(in 100's of dollars)</td><td><input id="costSlider" type="range" min="1" max="500" step="1" value="1" /></td><td><input type="text" id="costValue" name="estimatedcost"readonly/></td>
</tr>
<tr>
<td>Objective:</td><td><textarea id="objective" name="objective"></textarea></td>
</tr>
<tr>
<td>Resources:</td><td><input id="resources" type="number" value="0" name="resources"/> </td>
</tr>
<tr>
<td>Status:</td>
<td>
<select name="status">
<option value="design">Design Stage</option>
<option value="working">Work in Progress</option>
<option value="finished">Finished</option>
<option value="publishing">Publishing</option>
</select>
</td>
</tr>
<tr>
<td>Supports:</td><td><textarea id="supports" name="supports"></textarea></td>
</tr>
<tr>
<td>ManagerID</td><td><input type="number" value="0" id="managerid" name="managerid"/></td>
</tr>
<tr>
<td><button type="submit" id="submitForm">Submit</button></td>
</tr>
</form>
</table>

我还应该提到我得到了通过 ajax 发布的实际信息,但我没有以 ajax 方式处理 Controller 代码,这意味着我仍然在方法结束时返回 View ,因为更改为使用 @ResponseBody @RequestBody 是问题开始发生的时间

请原谅我糟糕的格式,我还在学习。

最佳答案

所以问题是 @RequestMapping 的 Headers 参数,它不喜欢 Accept:/ 当我将它更改为 Accept:"application/json"时,我认为它是接受任何东西它开始正常工作感谢所有评论试图提供帮助的人

关于java - Spring 3.1 Controller 不接受 ajax post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24494543/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com