当前位置: 首页 > 知识库问答 >
问题:

无法处理来自AJAX调用的GET或POST请求

臧梓
2023-03-14

我在调用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 handleHttpRequest方法不支持警告:请求方法'POST'不支持org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver handleHttpRequest方法不支持警告:请求方法'GET'不支持

网络

请求URL:http://localhost:8080/PROJECT/login?

请求方法:GET

状态代码:405方法不允许

远程地址:[::1]: 8080

请帮忙

共有1个答案

周苑博
2023-03-14

这是因为您的按钮是一个提交按钮,而不仅仅是一个按钮。因此,当您单击按钮时,绑定到操作的javascript方法将被执行,但您没有阻止默认操作,因此表单也将作为x-www-form-urlencoded发送,因为我只是猜测,您的控制器只有在您获得请求方法不支持的错误时才准备好处理form-urlencoded请求。

你有不同的选择。您可以:

  • 使用按钮作为按钮的类型,而不是提交
  • 使用Event.prevent默认
  • 只需在您的javascript方法上返回false

您的javascript应该类似于:

$('#manualModePopupSave').click(function(e) {
    //Use this...
    e.preventDefault();

    var userno=$('#userno').val();

    ....

    //or this.
    return false;
});
 类似资料:
  • 本文向大家介绍深入理解Ajax的get和post请求,包括了深入理解Ajax的get和post请求的使用技巧和注意事项,需要的朋友参考一下 1.get请求 2.post请求 以上这篇深入理解Ajax的get和post请求就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。

  • 问题内容: 我的网络服务返回一个JSON对象,如下所示 即,当我将此地址放入chrome浏览器中时,我可以到达上面。 我正在尝试在浏览器中阅读此内容,以便可以创建一个下拉选项…但是从以下代码开始我一无所获: 我总是在警报框中。我用fiddler2再次检查了Web服务请求/响应是否正常,我什至可以拦截Web服务和浏览器之间的json对象。 我也试过 我又得到了空。 我已经看过Ajax要求的json响

  • 本文向大家介绍ajax请求post和get的区别以及get post的选择,包括了ajax请求post和get的区别以及get post的选择的使用技巧和注意事项,需要的朋友参考一下 最简单的区别: 1.使用Get请求时,参数在URL中显示,而使用Post方式,则不会显示出来 2.使用Get请求发送数据量小,Post请求发送数据量大 3.get请求需注意缓存问题,post请求不需担心这个问题 Ge

  • 本文向大家介绍php自定义类fsocket模拟post或get请求的方法,包括了php自定义类fsocket模拟post或get请求的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php自定义类fsocket模拟post或get请求的方法。分享给大家供大家参考。具体如下: zsocket.class.php文件如下: demo代码如下: 希望本文所述对大家的php程序设计有所帮助。

  • 我试图通过ajax发布json数据。json数据包含一个大的html表。然而,这个POST请求被转换成GET请求,我得到错误414(请求-URI太长)。我知道jsonp POST请求转换成GET,但是为什么我的json请求转换成GET?