You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ajax请求意外发送GET而非POST问题求助

解决Ajax POST请求被识别为GET的问题

针对你遇到的“不支持GET请求”错误,结合jQuery 1.10.2的特性,给出以下排查和解决步骤:

1. 检查URL拼接是否正确

可能#codigoTitulo的值为空或未正确获取,导致URL不符合后端POST路由规则,后端将请求识别为GET。在doPost函数开头添加日志,确认URL是否正确:

function doPost() {
  var targetUrl = "/titulos/editar/" + $("#codigoTitulo").val();
  console.log("请求URL:", targetUrl); // 在控制台查看URL
  // 剩余代码...
}

确保URL与Insomnia中测试的一致,比如包含有效的codigoTitulo值。

2. 替换method为type参数

jQuery 1.10.2虽已支持method,但部分场景下type参数兼容性更稳定(这是jQuery早期版本指定请求方法的标准参数),修改Ajax配置:

$.ajax({
  type: "POST", // 替换原有的method: "POST"
  url: targetUrl,
  data: formData,
  contentType: "application/json; charset=utf-8",
  error: function (jqXHR, textStatus, errorThrown) {
    console.log("错误详情:", jqXHR.responseText, errorThrown); // 查看更详细的错误响应
    alert("Erro ao editar título: " + textStatus);
  }
});

3. 确认请求实际发送方式

打开浏览器开发者工具(F12)→ 切换到「Network」标签,触发表单提交后:

  • 查看请求的Method列是否为POST
  • 检查Request URL是否与预期一致
  • 查看「Response」标签,获取后端返回的完整错误信息,辅助定位问题

4. 排查表单额外提交触发

确认表单内的按钮是否都指定了type="button",避免未指定类型的按钮默认触发submit事件,导致可能的重复GET请求。

修改后的完整Ajax函数示例:

function doPost() {
  var targetUrl = "/titulos/editar/" + $("#codigoTitulo").val();
  console.log("请求URL:", targetUrl);
  
  var formData = JSON.stringify($("#form-titulo").serializeArray());
  $.ajax({
    type: "POST",
    url: targetUrl,
    data: formData,
    contentType: "application/json; charset=utf-8",
    error: function (jqXHR, textStatus, errorThrown) {
      console.log("错误详情:", jqXHR.responseText, errorThrown);
      alert("Erro ao editar título: " + textStatus);
    },
    success: function(response) {
      console.log("编辑成功:", response);
    }
  });
}

内容的提问来源于stack exchange,提问作者loskYz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 01:55:24