JQuery Ajax 正在发送 GET 而不是 POST。不支持请求方法“GET”

时间:2021-03-24 06:25:33

标签: jquery ajax spring spring-mvc

     $.ajax({
            url : 'saveeolref',
            type:"POST",
            cache:false,
            data:{
      "probId": probid,
      "rowid": rowid, 
        "ord": order},
            dataType: "json",
             contentType: "application/json; charset=utf-8",
            success: function (response) {
                alert(response);                     
            },
             error: alert('fail')
        });

 <button type="button"  onclick="updateRef()">Submit</button>
  • Ajax 调用
     $.ajax({
            url : 'saveeolref',
            type:"POST",
            cache:false,
            data:{
      "probId": probid,
      "rowid": rowid, 
        "ord": order},
            dataType: "json",
             contentType: "application/json; charset=utf-8",
            success: function (response) {
                alert(response);                     
            },
             error: alert('fail')
        });

1 个答案:

答案 0 :(得分:0)

如果您使用 jQuery 1.9.0 以上版本,请尝试使用 method 属性而不是 type

还尝试在“网络”浏览器的调试面板中查看请求的发起者,以了解 GET 请求从代码中的何处发送。

dataType: "json" 覆盖 type: "POST" 的原因是因为 documentation 指定了以下内容:

<块引用>

"json":将响应计算为 JSON 并返回一个 JavaScript 对象。具有回调占位符的跨域“json”请求,例如?callback=?, 使用 JSONP 执行,除非请求在其请求选项中包含 jsonp: false 。 JSON 数据以严格的方式解析;任何格式错误的 JSON 都会被拒绝并引发解析错误。从 jQuery 1.9 开始,空响应也会被拒绝;服务器应改为返回 null 或 {} 响应。 (有关正确 JSON 格式的更多信息,请参阅 json.org。)

也就是说,jQuery 将请求移动到 JSONP 调用而不是 POST 调用。