Я исследовал этот вопрос как нелепую сумму и надеюсь, что кто-то поможет диагностировать, что не так.
Я уже пробовал посмотреть на следующие вопросы SO: (SO не разрешил бы отправлять более двух ссылок из-за репутации, поэтому я только что включил пути)
- questions/16344933/angularjs-jsonp-not-working/16352746#16352746
- questions/19269153/jsonp-request-in-angularjs-doesnt-work-like-in-jquery
- questions/19669044/angularjs-getting-syntax-error-in-returned-json-from-http-jsonp
Среди многих других...
Что я пробовал: Я добавил & callback = JSON_CALLBACK в конец URL-адреса. Я изменил настройки конфигурации, такие как responseType: 'JSON'. Я также несколько раз перенастроил запрос http.jsonp, чтобы убедиться, что это не что-то программное/текстовое (http ({}) и http.jsonp)
Вот что я пытаюсь сделать: Возьмите информацию из routingnumbers.info/api/ с помощью запроса angular jsonp (сервер не разрешает CORS). Я могу успешно выполнить запрос с помощью jQuery, но я не могу сделать это успешно с помощью angular.
Вот соответствующая тестовая скрипта: http://jsfiddle.net/dqcpa/14/
Как вы можете видеть, я получаю две ошибки:
- Ресурс интерпретируется как Script, но передается с типом MIME text/plain: " https://routingnumbers.herokuapp.com/api/data.json?rn=071000013&callback=angular.callbacks._0". angular.min.js: 97
- Uncaught SyntaxError: Неожиданный токен:
Но если вы проверите ответ в 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: Некоторые знаки препинания и прочее.