【问题标题】:Can I dynamically select GET or POST type in an AJAX request?我可以在 AJAX 请求中动态选择 GET 或 POST 类型吗?
【发布时间】:2019-01-14 17:44:16
【问题描述】:

考虑下面拦截表单提交事件的代码,在这种情况下来自两个不同的表单。

$("#aaa, #bbb").submit(function(e) {
    e.preventDefault();
    var form = $(this);
    var url = form.attr('action');
    $.ajax({
        type: "GET",
        url: url,
        data: form.serialize(),
        success: function(data) {
            $("#ccc").html(data);
        }
    });
});

问题 - 如果#aaa 需要GET,但#bbb 需要POST,我可以检测并更改上述代码中的type 参数吗?怎么样?

我幼稚的解决方案是将上述代码复制两次,一次仅用于#aaa,另一次用于#bbb,并在一个块中使用 GET,在另一个块中使用 POST ..

【问题讨论】:

  • e.target.id 将是 aaabbb
  • 所以请阅读您在表单上设置的方法。
  • 不过,如果你把 GET 放在 aaa 表单上,把 POST 放在 bbb 表单上,那么它可能就像抓取表单方法一样简单
  • 我认为e.target.method 是我要找的东西
  • form.attr("method") 也可以。

标签: javascript jquery ajax post get


【解决方案1】:

所以使用事件并阅读您在表单上设置的方法。

$("form").on("submit", function(evt) {
  evt.preventDefault();
  console.log(evt.target.method);
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<form method="get">
  <button>Get</button>
</form>
<form method="post">
  <button>Post</button>
</form>

【讨论】:

    猜你喜欢
    • 2012-09-22
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-12
    • 2018-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多