Django通过ajax获取请求发出两个请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django通过ajax获取请求发出两个请求相关的知识,希望对你有一定的参考价值。

我正在努力将数据从ajax传递到Django视图。但是,ajax以某种方式发出了2个GET请求:一个带有查询字符串,另一个带有查询字符串。在视图中,当我尝试将查询字符串变为空时。

Ajax代码:

<script>
$( document ).ready(function() {

    var query = "{{ item.ipv4_address }}";
    $("#clickid").click(function() {
            $.ajax({

                    url: "/reserve/run/?ip=",
                    type: "GET",
                    data: {ip:query},
                    success:function(data){
                            console.log(data);
                    }
            });
   });
});


</script>

Django视图:

def run_script(request):

    if request.GET:
        ip = request.GET['ip']
        print ip 

    return render_to_response('test.html',{'item':ip})

两个网址:

[16/Dec/2017 07:43:56] "GET /reserve/run/?ip=198.18.101.123 HTTP/1.1" 200 570
[16/Dec/2017 07:03:58] "GET /reserve/run/ HTTP/1.1" 200 1

urls.py文件

url(r'^run/$',views.run_script,name='run_script'),

请让我知道我哪里出错了。另外,如果您需要更多信息,请与我们联系。任何指针都表示赞赏。

答案

如果要在数据属性中传递查询参数,则无需在url参数中发送它。将您的url参数更新为:

$.ajax({

                url: "/reserve/run/",
                type: "GET",
                data: {ip:query},
                success:function(data){
                        console.log(data);
                }
        });
另一答案

我发现了错误。在我的标签中,我也提到了URL。 {%url'run_script'%}。这是发送额外的GET请求。删除后,问题就解决了。

以上是关于Django通过ajax获取请求发出两个请求的主要内容,如果未能解决你的问题,请参考以下文章

使用 Ajax/Javascript/Django 的 CORS 请求

如何在 django 的预检 CORS POST 请求中处理 CSRF?

Django CSRFToken 中间件附加到 URL 并在向服务器发出“PUT”请求后显示。 (AJAX 问题)

Django 在 JQuery AJAX 请求中说 is_ajax 是错误的

php脚本得到两个ajax请求,只返回一个?

12.Django与ajax