2016-11-11 72 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的內容。 –