调用AJAX请求后出现此错误。 控制正在服务器端,所有进程都正常工作。但是在调用控制器代码之前我得到了这个错误并且在这里停留了。
JSP
<form id="pop-up3reset">
..................
<input type="submit" value="Send" id="manualModePopupSave" />
Ajax Call
$(document).ready(function() {
$('#manualModePopupSave').click(function() {
var userno=$('#userno').val();
var on_off1 = $('#pop-up3onoff1').is(':checked') ? 1 : 0;
var search = {
"user_no" : userno,
"onoff1" : on_off1
};
var myJsonStringsearch = JSON.stringify(search);
alert(myJsonStringsearch);
$.ajax({
type : "POST",
url : "setManualModeForAjax",
contentType : "application/json",
async : true,
cache : false,
data : myJsonStringsearch,
dataType : 'json',
success : function(response) {
$('#onoff1').val(response.onoff1);
if(response.errorMessage == "-1"){
sweetAlert("not in communication", "","error");
}else if(response.errorMessage == "M,1"){
sweetAlert("Request is Not Reachable", "","error");
}
},
});
});
});
控制器
@RequestMapping(value = {"/setManualModeForAjax"}, method = RequestMethod.POST, produces = "application/json")
public @ResponseBody ManualModeFromAjax setManualMode(@RequestBody ManualModeFromAjax manualModeFromAjax)throws Exception
{
System.out.println("In manual mode for AJAX request");
....................
return manualModeFromAjax;
}
org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported 警告:请求方法&#39; POST&#39;不支持 org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported 警告:请求方法&#39; GET&#39;不支持
网络
请求网址:http://localhost:8080/PROJECT/login?
请求方法:GET
状态代码:405方法不允许
远程地址:[:: 1]:8080
请帮忙
答案 0 :(得分:2)
这是因为您的按钮是submit
按钮,而不仅仅是button
。因此,当您单击按钮时,将执行绑定到操作的javascript方法,但您不会阻止默认操作,因此表单也会以x-www-form-urlencoded
的形式发送,因为,我只是在猜测,您的控制器只是准备好了处理form-urlencoded
请求时,如果您收到请求方法不受支持错误。
您有不同的选择。你可以:
button
作为按钮的类型,而不是submit
你的javascript应该是这样的:
$('#manualModePopupSave').click(function(e) {
//Use this...
e.preventDefault();
var userno=$('#userno').val();
....
//or this.
return false;
});