我正在使用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数字。我一直试图解决这个问题很长一段时间,所以我非常感谢你能提供的任何帮助。非常感谢!
答案 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);
});
}