【问题标题】:JQuery Ajax is sending GET instead of POST. Request method 'GET' not supportedJQuery Ajax 发送的是 GET 而不是 POST。不支持请求方法“GET”
【发布时间】:2021-06-20 20:26:24
【问题描述】:
     $.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')
        });

【问题讨论】:

  • Javscript 事件:
  • 如果您有更多详细信息,请单击“编辑”链接并将其添加到问题中。
  • 你能分享你打电话的网址吗?
  • 你为什么有contentType: "application/json"? jQuery 不会将对象作为 JSON 发送,而是将其作为 URL 编码的字符串发送。
  • 为什么AJAX代码发了两次?

标签: jquery ajax spring spring-mvc


【解决方案1】:

如果您使用 1.9.0 以上的 jQuery,请尝试使用 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 调用。

【讨论】:

  • 它工作了:)。删除“数据类型:json”后。但是,我不知道为什么。感谢您的回复!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 1970-01-01
  • 2012-03-09
  • 1970-01-01
  • 2015-08-06
  • 1970-01-01
相关资源
最近更新 更多