2016-06-21 11 views
-1

Ich rufe eine Rest API über Jsonp. Der API-Server gibt den richtigen Wert zurück, aber nach der Argumentliste wird 'fehlt' und Ajax gibt den Fehler zurück. Was ist hier nicht korrekt?jsonp call: fehlt) nach Argumentliste

In Javascript,

$.ajax({ 
url: 'http://localhost:8080/version', 
dataType: 'jsonp', 
type: 'GET', 
success: function (data) { 
    console.log(data); 
}, 
error: function(xhr, status, error){ 
    console.log(xhr.status + ": " + xhr.responseText) 
}, 

});

In Java

@GET 
@Produces("application/javascript") 
public String getVersion(@QueryParam("callback") String callback) { 
     return callback + "(hello)"; 
} 
+0

Zeigen Sie den tatsächlichen JSONP-Text, der den Fehler erzeugte. Ihr Java-Code erzeugt etwas falsch, aber nicht falsch in der Art, wie die Fehlermeldung vorschlägt. –

Antwort

1

Ich kann nicht sehen, wie Sie dass Fehler bekommen würde, aber die JSONP Antwort ist falsch. Sie senden so etwas wie dies zurück:

callbackName(hello) 

, dass eine globale Variable hello erwartet; hallo sollte in Anführungszeichen gesetzt werden:

callbackName("hello") 

So:

@GET 
@Produces("application/javascript") 
public String getVersion(@QueryParam("callback") String callback) { 
     return callback + "(\"hello\")"; 
// NOTE ------------------^^-----^^ 
} 

In Bezug auf

missing) after argument list

Dies ist die Art von Dingen, die diesen Fehler erzeugen würde:

callbackName("hello" 

oder eine fehlende , zwischen Argumenten würde es auch erzeugen:

callbackName("hi" "there") 
+0

Vielen Dank. Gelöst ^^ – user2307087