2017-02-02 3 views
-1

Ich versuche, die Daten eines JSONP abzurufen, aber es gibt einen Syntaxfehler zurück, wenn die Funktion aufgerufen wird. Ich bin wirklich neu in diesem Thema und verstehe nicht warum. Wahrscheinlich, weil ich nicht alles von JSONP-Anfragen verstanden habe. Es wäre schön, wenn mir jemand helfen könnte.Syntaxfehler nach JSONP-Anfrage

ausgeführtem Code:

$.ajax({ 
     url: "https://backpack.tf/api/IGetMarketPrices/v1?format=json&callback=JSONP&key=XXX&appid=730", 
     dataType: "jsonp", 
     data: {format: "json"}, 
     type: "GET", 
     jsonp: "response", 
     jsonpCallback: "response", 
     success: function(response) { 
      console.log(response); // server response 
     } 
     }); 

(Ich hatte meine API-Schlüssel zensieren.)

Fehler: Uncaught SyntaxError: Unexpected token :

Die Antwort ist:

{"response":{"success":1,"current_time":1486000891,"items":{"AK-47 | Aquamarine Revenge (Battle-Scarred)":{"last_updated":1485997229,"quantity":80,"value":1092},... 

Die erste: ist unterstrichen von Chrome.

Here ist die API-Dokumentation.

+1

Das heißt, Sie haben kein JSONP, Sie haben JSON. – epascarello

+2

'Die Antwort ist:' nicht JSONP - es ist nur JSON - vielleicht backback.tf nicht "JSONP" –

+0

@ Jaraomanda X, aber auf der Dokumentation sagt es Callback nur JSONP. – user405981

Antwort

1

Von Versuch und Irrtum - beeindruckend wie ich habe keinen API-Schlüssel

$.ajax({ 
    url: "https://backpack.tf/api/IGetMarketPrices/v1?format=jsonp&key=XXX&appid=730", 
    dataType: "jsonp", 
    type: "GET", 
    success: function(response) { 
     console.log(response); // server response 
    } 
}); 

oder

$.ajax({ 
    url: "https://backpack.tf/api/IGetMarketPrices/v1", 
    dataType: "jsonp", 
    type: "GET", 
    data: { 
     format: 'jsonp', 
     key: 'XXX', 
     appid: 730 
    }, 
    success: function(response) { 
     console.log(response); // server response 
    } 
}); 

Um zu erklären, ... jQuery fügt automatisch einen Abfrageparameter callback auf JSONP Anfragen genannt ... Da die API angibt, dass Sie den Rückrufnamen in einem Parameter namens callback definieren müssen, können Sie jQuery den Standardwert callback

verwenden

Anschließend erstellt jQuery eine Funktion mit einem langen zufälligen Namen, und setzt den Wert des callback Parameter dieser Funktion - so müssen Sie nicht jsonp oder jsonpCallback Parameter über die Sorge - defaults

gut muss ich etwas Grundlegendes fehlen, denn das sollte funktionieren!

+0

Wit, dass ich bekomme "Uncaught ReferenceError: jQuery31109337491141215399_1486002924271 ist nicht definiert" – user405981

+0

Ich habe gerade festgestellt, dass wahrscheinlich, weil die Antwort jetzt verpackt ist in 'jQuery31109337491141215399_1486002924271 (...)' aber ich weiß nicht, warum das jetzt da ist. Ich hoffe, das hilft. – user405981

+0

'Die Antwort ist jetzt verpackt' - Ja, so funktioniert JSONP !!! –