【问题标题】:jQuery.post() is calling both GET and POSTjQuery.post() 同时调用 GET 和 POST
【发布时间】:2016-09-27 14:53:20
【问题描述】:

我有一个简单的 asp.net mvc 应用程序,其中定义了 [HttpPost] 控制器方法。出于某种原因,在调用 jQuery.post() 时,有 2 个请求被发布到服务器:

  1. http GET 返回 404 然后

  2. http POST 成功返回。

谁能解释为什么最初的 GET 请求?这会产生大量无用的错误。

示例代码:

<a href="~/group/create/" class="btn btn-default" data-toggle="modal" data-target="#GroupModal">Create Group</a>
<script>
$('#GroupModal').on('show.bs.modal', function (event) {
        var _this = $(this);
        var _btn = $(event.relatedTarget);
        var _body = _this.find('.modal-body');
        $.post(_btn.attr('href')).done(function (r) { _body.html(r); });
    });
</script>

【问题讨论】:

  • 也许你应该给我们看一些代码。我猜,您正在取消触发 Ajax 调用的操作。
  • 我可能是错的,但如果我没记错的话,第一个 GET 请求实际上是一个 OPTIONS 请求,因为它试图确定服务器功能以便正确提交 POST 请求
  • 欢迎来到 SO。请访问help center 了解询问内容和方式。提示:发布努力和代码。获取可能来自您忘记取消的表单$("#formId").on("submit",function(e) { e.preventDefault(); $.post....
  • @Melanef 不是同源请求。
  • 如果不阻止默认操作,您的问题中唯一执行 GET 请求的是锚标记本身。

标签: jquery asp.net-mvc post get


【解决方案1】:

默认情况下,Bootstrap 3 向 href 值发出远程 ajax GET 请求。通过将 data-remote="false" 添加到锚点解决了问题。

【讨论】:

    猜你喜欢
    • 2011-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-14
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多