在javascript中我需要一个简单的日期列表,例如(对于jquery datepicker):
["16-5-2013", "24-5-2013", "25-5-2013", "26-5-2013"]
因为这个列表是动态的,我想使用这个ajax调用:
var disabledDays = $.ajax({
type: 'GET',
url: "/disabled-days",
});
在Django中,我编写了这个测试视图,它返回json中的数据:
def disabled_days(request, soort):
from django.http import HttpResponse
import json
soort = ["16-5-2013", "24-5-2013", "25-5-2013", "26-5-2013", "27-5-2013"]
return HttpResponse(json.dumps(soort), mimetype="application/json")
json在这里传递数据的方式吗?我在responsText中找到了日期列表,但我无法访问此数据。
例如,我尝试过像:
这样的项目 for (i = 0; i < disabledDays1.length; i++) {
item = results[i];
disabledDays.push(item);
}
这会产生一个空列表。
responsetext是(编码为json):
["16-5-2013", "24-5-2013", "25-5-2013", "26-5-2013"]
当我做一个console.log()时,我看到了这个信息:
GET http://localhost:8080/disabled-days
200 OK
39ms
jquery-1.9.1.js (regel 8526)
Object { readyState=1, getResponseHeader=function(), getAllResponseHeaders=function(), meer...}
以下是AnhTú给出的解决方案(尚未开始):
var disabledDays1 = $.ajax({
type: 'GET',
url: "/disabled-days",
});
var disabledDays = []
for (i = 0; i < disabledDays1.length; i++) {
item = results[i];
if(typeof(responsetext)==string){responsetext= JSON.parse(responsetext);} $.each(responsetext,function(i,item){disabledDays.push(item);});
}
console.log(disabledDays);
答案 0 :(得分:0)
我认为你正在处理错误的ajax请求。通常,当请求成功并声明收到的数据时,您会声明一个回调函数:
var disabledDays = []
$.ajax({
type: 'GET',
url: "/disabled-days",
success: function(data){
// data is the response json
disabledDays = data
// do whatever it needs to be done with disabledDays,
// it should be the array of dates.
// the process should be inside this method because of asynchronous
// javascript method execution
}
});
希望它有所帮助!