如何在JQuery .getJSON()函数中使用URL

时间:2013-12-05 20:00:22

标签: javascript jquery django json

我正在使用Django Web框架,并尝试更新客户端的状态栏以显示文件上载的进度。在我的Django视图中,我创建了以json对象的形式返回进度,其中包含以下内容:

response = HttpResponse(json.dumps(response_data), content_type="application/json")
        return response

在我关注的网页上,通过以下使用$ .getJSON()函数获取此信息

function status(importid){
    var barProgress = window.setInterval("getProgress(importid);", 1000);
}

function getProgress(importid){
    var url=api_server_address+"import/status/update/";
    console.log(url);
    $.getJSON(url,{impid: importid},
      /*UPDATE--if I check the url at this point it is what I expect, 
      the same url I hardcode below
      http://localhost:8000/status/update/?impid=258
      */
        function(data) {
            alert(data);
        }
    );
}

function loadBar(data){
    $('#progressBar').progressbar(load);
}

但是,当我在调试控制台中检查响应时,我不断收到内部500错误。如果不是使用url变量而是我将函数传递给硬编码的url,我会得到我的JSON结果。例如,以下内容返回我想要的响应:

$.getJSON("http://localhost:8000/status/update/?impid=258", function(data) {
    console.log(data);
});

我希望能够动态更改传递的url,具体取决于将在GET请求中发送的impid数字。我一直试图解决这个问题很长一段时间,所以我非常感谢你能提供的任何帮助。非常感谢!

2 个答案:

答案 0 :(得分:2)

尝试使用getJSON

function getProgress(importid){
    var url = api_server_address + "import/status/update/";
    console.log(url);
    $.getJSON(url, {impid: importid})
        .done(function(data) {
            console.log(data);
        });
}

答案 1 :(得分:1)

尝试使用完整的ajax方法,无需简写getJSON

var url=api_server_address+"import/status/update/";
var getProgress =  function(importId) {
     $.ajax({
        url: url,
        data: { impid: importId },
        type: "GET",
        dataType: "json"
     })
     .done(function(data){
         console.log(data);
     });
}