2013-12-05 2 views
0

Я использую веб-фреймворк Django и пытаюсь обновить строку состояния на стороне клиента, чтобы показать ход загрузки файла. На мой взгляд Django я создал Возвращаю прогресс как объект JSON со следующим:Как использовать URL с функцией JQuery .getJSON()

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

На веб-странице я attepmting, чтобы получить эту информацию с последующим использованием в $ .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); 
} 
()

Однако, когда я проверяю ответ в консоли отладки, я получаю ошибку Internal 500. Если вместо использования переменной url, и я передаю функцию hardcoded url, я получаю результаты JSON. Например, следующие возвращает ответ, который я хочу:

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

Я хочу, чтобы иметь возможность динамически изменять URL, который передается в зависимости от impid номер, который будет отправлен в запросе GET. Я давно пытаюсь решить эту проблему, поэтому я очень ценю любую помощь, которую вы можете предложить. Спасибо!

ответ

1

Попробуйте с полным АЯКС подход, без стенографии 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); 
    }); 
} 
1

Попробуйте это 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); 
     }); 
} 
Смежные вопросы