SyntaxError:missing;在JSONResponse上的声明之前

时间:2016-11-11 08:17:43

标签: jquery python json ajax django

我遇到了这种错误:

SyntaxError: missing ; before statement

我不知道导致错误的原因,但我在这里有这段代码:

(function pollschedule(){
    $.ajax({type: "GET",
    dataType: "jsonp",
    contentType: "application/json",
    url: "http://127.0.0.1:8080/get/schedule/1/",
    success: function(data){
        console.log(data);
    }, 
    complete: pollschedule, timeout: 5000});
})();

如果您可能需要查看http://127.0.0.1:8080/get/schedule/1/是什么:

def get_schedule(request, sid):
    schedule = Schedule.objects.filter(id=sid, date=datetime.datetime.now()).values('id', 'sched__name', 'date', 'time')
    sched_collection = collections.defaultdict(list)
    for i in schedule:
        sched_collection[i['sched__name']].append(i)

    return JsonResponse({"schedule" : dict(sched_collection)})

并返回:

{"schedule": {"CWW": [{"date": "2016-11-11", "time": "17:10:10"}]}}

错误指向"计划"之后的分号。在回应中。

1 个答案:

答案 0 :(得分:1)

JSONP不是JSON。你的回答是JSON,但你告诉jQuery期待JSONP。

使响应有效JSONP,或更新执行检索的代码以期望JSON。 (请注意,如果您执行后者,则会遇到跨源问题,除非您运行ajax的页面也在http://127.0.0.1:8080上。)