【问题标题】:Django get request via ajax making two requestsDjango通过ajax获取请求发出两个请求
【发布时间】:2017-12-16 07:10:59
【问题描述】:

我正在将数据从 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'),

请告诉我哪里出错了。另外,如果您需要更多信息,请告诉我。任何指针表示赞赏。

【问题讨论】:

  • 您是否在view 中打印并检查它是否真的发出2 个请求??
  • 不,除了我试图作为查询字符串传递的 IP 之外,我没有打印任何内容。

标签: python ajax django django-views


【解决方案1】:

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

$.ajax({

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

【讨论】:

  • url 请求已经反转:[16/Dec/2017 07:43:46] "GET /reserve/run/ HTTP/1.1" 200 1[16/Dec/2017 07:43:56] "GET /reserve/run/?ip=198.18.101.123 HTTP/1.1" 200 570
  • 我已经包含了 urls.py 我相信这里有一些问题。
  • 您是否在 html 中获得了 "{{ item.ipv4_address }}" 的值?
  • 实际上它是模态的一部分。模态加载需要 2 秒。加载后,"{{ item.ipv4_address }}" 变为可用。我可以看到它的控制台日志。
  • 请检查您的 id 为 'clickid' 的元素是否只被点击一次。可能是因为您的模态需要一些时间来加载,直到该元素被点击。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2019-02-25
    • 1970-01-01
    • 2018-09-26
    • 2022-01-04
    • 2020-03-03
    • 1970-01-01
    • 1970-01-01
    • 2019-08-10
    • 1970-01-01
    相关资源
    最近更新 更多