![](/img/trans.png)
[英]POST request gets 405 response instead of being handled by access-denied-handler
[英]GET or POST request from AJAX call is not being handled
调用 AJAX 请求后出现此错误。 控制正在击中服务器端,所有过程都运行良好。 但是在调用控制器代码之前,我收到了这个错误并卡在了这里。
jsp
<form id="pop-up3reset">
..................
<input type="submit" value="Send" id="manualModePopupSave" />
Ajax 调用
$(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 警告:不支持请求方法“POST” org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequestMethodNotSupported 警告:不支持请求方法“GET”
网络
请求 URL: http://localhost:8080/PROJECT/login ?
请求方式:GET
状态代码:405 方法不允许
远程地址:[::1]:8080
请帮忙
这是因为您的按钮是submit
按钮,而不仅仅是button
。 因此,当您单击按钮时,会执行绑定到该操作的 javascript 方法,但您不会阻止默认操作,因此该表单也以x-www-form-urlencoded
发送,因为,我只是猜测,您的控制器是只有当您收到请求方法不支持错误时,才准备好处理form-urlencoded
请求。
你有不同的选择。 你可以:
button
作为button
类型而不是submit
你的 javascript 应该是这样的:
$('#manualModePopupSave').click(function(e) {
//Use this...
e.preventDefault();
var userno=$('#userno').val();
....
//or this.
return false;
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.