在 进行 ajax 调用 后 , 我 得到 错误 405 方法 不 被 允许 。 我 使用 的 是 Spring 3.0.1 , Spring-web 3.0.1 。
下面 是 控制 器 Map
@控制 器 公共 类 AjaxController {
@RequestMapping(value = "/ajaxaction",
method = RequestMethod.POST,
headers ="content-type=application/json")
public @ResponseBody Collection<Employee> serveAjaxRequest(@RequestBody ReqParam reqParam){
List<Employee> empList = new ArrayList<Employee>();
System.out.println("Req obj:: " + reqParam.getA() + " " + reqParam.getB()
+ " " + reqParam.getC() + " " + reqParam.getD() + " " + reqParam.getE());
Employee e1 = new Employee();
e1.setFirstName("Vaibhav");
e1.setLastName("Raj");
e1.setEmail("vraj3@sapient.com");
e1.setTelephone("1111111111");
e1.setReturnMessage("Message one!!");
Employee e2 = new Employee();
e1.setFirstName("Ajay");
e1.setLastName("Singh");
e1.setEmail("asingh@gmail.com");
e1.setTelephone("2222222222");
e1.setReturnMessage("Message two!!");
empList.add(e1);
empList.add(e2);
return empList;
}
中 的 每 一 个
)
和 用于 ajax 调用 的 Jquery 代码 :
函数 : submitAjax ( ) {
$('#g').bind('click', function(evt) {
alert($('form').serialize());
formData = $('form').serialize();
$.ajax({
url: "/ajaxaction.html",
type: 'POST',
dataType: 'json',
data: formData,
success: function(data) {
alert(data);
},
error: function(){
alert("Error!!");
}
});
});
格式
5条答案
按热度按时间clj7thdc1#
根据错误所述,这可能是您的问题:
@请求Map(值=“/ajaxaction”,方法=请求方法.POST,头=“内容类型=应用程序/json”)
你可以使用firebug来检查请求的头。是否有“content-type”的头?
vdgimpew2#
尝试在 AJAX 选项中使用
contentType: 'application/json'
设置请求内容类型。ozxc1zmp3#
使用Spring控制器的JSON响应时,需要定义Accept头。默认情况下,Spring将Accept头定义为html。添加头:
修改您的方法注解,并将其更改为:
elcex8rz4#
大家好,我遇到了同样的错误,我通过将 AJAX 调用从get更改为post来修复这个错误,因为我在@RequestMapping注解中提到了方法RequestMethod.POST,这和您一样。
但是我正在对那个方法进行get调用。检查你 AJAX 调用
omvjsjqw5#
为REST风格的Web服务启用跨源请求,请参阅here