2014-10-08 14 views
18

Ich habe diese Frage eine lächerliche Menge erforscht und würde hoffen, dass jemand helfen kann zu diagnostizieren, was falsch ist.JsonP meldet "Uncaught SyntaxError: Unerwartetes Token:" AngularJS - routingnumbers.info

ich schon versucht habe, schaute auf die folgenden SO Fragen: (SO würde mich aufgrund Ruf mehr als 2 Links nicht zulassen, veröffentlichen, so ich habe enthalten nur die Pfade)

  1. questions/16344933/angularjs-jsonp-not-working/16352746#16352746
  2. questions/19269153/jsonp-request-in-angularjs-doesnt-work-like-in-jquery
  3. questions/19669044/angularjs-getting-syntax-error-in-returned-json-from-http-jsonp

Unter vielen anderen ......

Dinge, die ich habe versucht: ich & Rückruf hinzugefügt haben = JSON_CALLBACK zum Ende der URL. Ich habe Konfigurationseinstellungen wie responseType geändert: 'JSON'. Ich habe auch die http.jsonp Anfrage mehrmals neu angeordnet, um sicherzustellen, es war nicht etwas, programmatische/Text ( http ({}) & http.jsonp)

Hier ist, was ich versuche zu tun: Informationen aus routingnumbers.info/api/ mit einer eckigen JSONP-Anfrage (Server lässt keine CORS). Ich bin in der Lage, die Anfrage erfolgreich mit jQuery zu machen, aber ich kann es nicht erfolgreich mit eckigen machen. Hier

ist die entsprechende Test Geige:http://jsfiddle.net/dqcpa/14/

Wie Sie sehen können, erhalte ich zwei Fehler:

  1. Ressource als Script interpretiert, sondern mit MIME-Typ text/plain übertragen: " https://routingnumbers.herokuapp.com/api/data.json?rn=071000013&callback=angular.callbacks._0 ". angular.min.js: 97
  2. Uncaught Syntaxerror: Unerwarteter token:

Aber wenn Sie die Antwort in Chrom devtools überprüfen - NETWORK ist es richtig: Obwohl ich weiß, dass JSONP die Antwort zurück innerhalb von jsonpfunction ({"MyJson": "Data"}), wo es aufgelegt wird. Hier

ist der ursprüngliche Code:

//$scope.number = '071000013'; 
var routingApiUrl = 'https://routingnumbers.herokuapp.com/api/data.json?rn=' + $scope.number; 
$http({ 
    method: 'jsonp', 
    url: routingApiUrl + '&callback=JSON_CALLBACK', 
    responseType: "json" 
}). 
success(function(data){ 
    console.log('Success: ' + data); 
}). 
error(function(data){ 
    console.log('Error: ' + data); 
}); 

Hat jemand verwendet, um dieses API mit Winkel? Ich nehme an, dass es etwas gibt, was ich tun kann (sans jquery), um Header zu ändern, aber ich konnte keine Informationen finden. Ich denke auch, dass es ein Serverproblem sein könnte (obwohl, wenn es in jquery richtig arbeitet, das nicht das Problem wäre). Vielleicht könnte dies etwas mit HTTPS sein

TL: DR - Angular JSONP Anfrage funktioniert nicht, aber mit der gleichen URL, die jQuery JSONP Anfrage funktioniert. Verweise ich auf den obigen Code, was fehlt mir?

Jede Hilfe wäre toll!

EDIT: Einige Interpunktion und so.

+0

nicht müssen Sie fügen Sie '? Rückruf =' 'vs. & Callback ='? Es ist das Fragezeichen, nicht das kaufmännische Und –

+0

Es gibt bereits ein? Rn = auf der URL. Siehe routingApiUrl. Verwenden von & als Fortsetzung der Abfragezeichenfolge – dannypaz

Antwort

Verwandte Themen