2016-11-11 98 views
1
语句之前

我得到这样那样的错误:语法错误:缺少;在JSONResponse

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"}]}} 

错误指出响应中“schedule”后面的分号。

回答

1

JSONP不是JSON。你的回应是JSON,但你已经告诉jQuery期待JSONP。

要么使响应有效JSONP,要么更新执行检索的代码以期望JSON。 (请注意,如果你使用后者,除非你运行ajax的页面也在http://127.0.0.1:8080之上,否则你将碰到跨域问题。)

+0

好,我错过了那里的数据类型。 –

+0

@ T.J。 Crowder我把dataType改成了json,你说得对,我跑到了交叉原点,并且被照顾了。现在我的概率是为什么它不显示在模板上?抱歉要求更多。 –

+1

@JanWilmar:在本网站搜索“相同来源策略”(SOP)和“跨源资源共享”(CORS)以及更多关于JSONP的内容。 –