繁体   English   中英

来自 AJAX 调用的 GET 或 POST 请求未被处理

[英]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
  • 使用Event.preventDefault
  • 只需在您的 javascript 方法上返回 false

你的 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM