JsonP, возвращающий "Uncaught SyntaxError: Неожиданный токен:" AngularJS - routingnumbers.info
Я исследовал этот вопрос как нелепую сумму и надеюсь, что кто-то поможет диагностировать, что не так.
Я уже пробовал посмотреть на следующие вопросы SO: (SO не разрешил бы отправлять более двух ссылок из-за репутации, поэтому я только что включил пути)
Среди многих других...
Что я пробовал:
Я добавил & callback = JSON_CALLBACK в конец URL-адреса. Я изменил настройки конфигурации, такие как responseType: 'JSON'. Я также несколько раз перенастроил запрос http.jsonp, чтобы убедиться, что это не что-то программное/текстовое (http ({}) и http.jsonp)
Вот что я пытаюсь сделать:
Возьмите информацию из routingnumbers.info/api/ с помощью запроса angular jsonp (сервер не разрешает CORS). Я могу успешно выполнить запрос с помощью jQuery, но я не могу сделать это успешно с помощью angular.
Вот соответствующая тестовая скрипта: http://jsfiddle.net/dqcpa/14/
Как вы можете видеть, я получаю две ошибки:
Но если вы проверите ответ в chrome devtools - NETWORK, это правильно: Хотя я знаю, что jsonp вернет ответ внутри jsonpfunction ({ "MyJson": "Data" }) где он повесился.
Вот исходный код:
//$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);
});
Кто-нибудь использовал этот API с angular? Я предполагаю, что может быть что-то, что я могу сделать (sans jquery) для изменения заголовков, но я не смог найти никакой информации. Я также думаю, что это может быть проблема с сервером (хотя, если он корректно работает в jquery, это не проблема). Возможно, это может быть что-то с HTTPS
TL: DR - angular Запрос JSONP не работает, но с тем же URL-адресом выполняется запрос JQuery JSONP. Ссылка на приведенный выше код, что мне не хватает?
Любая помощь будет потрясающей!
EDIT: Некоторые знаки препинания и прочее.
Ответы
Ответ 1
по этому вопросу:
Как избавиться от Uncaught SyntaxError: Неожиданный токен: попробуйте добавить angular.callbacks._0 (JSON)
вокруг звонка json на стороне сервера. это сработало для меня
Это был плункер http://plnkr.co/edit/oX2UQRBA41FIHpwAP6AA