【问题标题】:Django Ajax: Multiple request to getting triggered for single ajax GET requestDjango Ajax:触发单个ajax GET请求的多个请求
【发布时间】:2020-03-03 04:23:39
【问题描述】:

当我从我的模板向我的视图发出 ajax 获取请求时,我遇到了一个奇怪的问题。当我点击历史按钮时,我可以在日志中看到 ajax 已将请求发送到两个不同的 URL。

控制台日志:

[06/Nov/2019 21:22:38] "GET /NewHandBook/UserHistory?uname=pvivek 
HTTP/1.1" 200 4306
[06/Nov/2019 21:22:38] "GET /NewHandBook/Home? HTTP/1.1" 200 9980

请求应该只发送到/NewHandBook/UserHistory,但不确定为什么会访问/NewHandBook/Home

我的 ajax 调用:

<form id="UserHistory">

        <button type="submit" class="btn btn-primary">
            <i class="fas fa-history"></i> History
        </button>
    </form>
    $(document).on('submit', '#UserHistory', function (e) {
                    console.log("clicked history button");
                    console.log(getCookie("userName"));
                    $.ajax({
                        type: 'GET',
                        url: '/NewHandBook/UserHistory',
                        data: {
                            'uname': getCookie("userName")
                        },
                        success: function (data) {
                            console.log("executed userHistory")
                            console.log(getCookie("userName"));
                        }
                    })
                })

网址.py

url('UserHistory', views.history)

views.py

def history(request):
    uname=request.GET.get('uname')
    result = UserQueryHistory.objects.filter(User_name=uname)
    return render(request, 'History/DbHistory.html', {"result": result})

【问题讨论】:

  • i 其他 [06/Nov/2019 21:22:38] "GET /NewHandBook/Home? HTTP/1.1" 200 9980 GET 请求被发送表单提交事件。
  • 非常感谢...正如您所说,问题出在表单上。

标签: jquery html django ajax python-3.x


【解决方案1】:

如果您有表单和“类型提交”按钮,单击按钮将提交您的表单。你的字体有event.preventDefault。这就是为什么这个按钮会触发两个请求。

有几个解决方案。最简单的两个是:

  1. 在 Js 上防止默认
  2. 更改按钮类型,甚至将其替换为例如 span

【讨论】:

  • 感谢大卫!即使在删除提交按钮并使用正常之后,我也看到了类似的问题,但正如你所说,这是表单的问题。
猜你喜欢
  • 1970-01-01
  • 2020-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 2011-11-28
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多