2016-11-11 4 views
1

ich diese Art von Störung erhalten:SyntaxError: fehlt; vor Aussage über JSONResponse

SyntaxError: missing ; before statement 

Ich weiß nicht, was den Fehler verursacht, aber ich habe diesen Code hier:

(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}); 
})(); 

Falls Sie benötigen, um sehen, was http://127.0.0.1:8080/get/schedule/1/ ist:

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)}) 

Und gibt diese:

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

Der Fehler zeigt das Semikolon nach "Zeitplan" in der Antwort.

Antwort

1

JSONP ist nicht JSON. Ihre Antwort lautet JSON, aber Sie haben jQuery gesagt, dass Sie JSONP erwarten sollen.

Entweder machen Sie die Antwort gültig JSONP, oder aktualisieren Sie den Code, der das Abrufen von JSON zu erwarten. (Beachten Sie, dass Sie, wenn Sie das letztere tun, auf Ursprungsprobleme stoßen werden, wenn die Seite, von der Sie den Ajax ausführen, ebenfalls auf http://127.0.0.1:8080 ist.)

+0

Guter Haken, ich habe den Datentyp dort verpasst. –

+0

@ T.J. Crowder Ich habe den dataType in json geändert und du hast recht, ich bin auf Cross-Herkunft gestoßen und habe mich darum gekümmert. Jetzt ist mein Problem, warum wird es nicht auf der Vorlage angezeigt? Tut mir leid, dass ich nach mehr gefragt habe. –

+1

@JanWilmar: Suchen Sie auf dieser Seite nach der "self origin policy" (SOP) und "Cross-Origin Resource Sharing" (CORS) und mehr über JSONP. –

Verwandte Themen