私はこの質問をばかげた量で調査しましたが、誰かが何が間違っているかを診断するのを手伝ってくれることを願っています.
私はすでに次のSOの質問を見てみました: (SOは評判のために2つ以上のリンクを投稿できないので、パスを含めました)
- 質問/16344933/angularjs-jsonp-not-working/16352746#16352746
- 質問/19269153/jsonp-request-in-angularjs-doesnt-work-like-in-jquery
- 質問/19669044/angularjs-getting-syntax-error-in-returned-json-from-http-jsonp
中でも……
私が試したこと: &callback=JSON_CALLBACKを URL の末尾に 追加しました。responseType: 'JSON'などの構成設定を変更しました。また、http.jsonp リクエストを複数回再配置して、プログラム/テキスト ( http({}) & http.jsonp )でないことを確認しました。
これが私がやろうとしていることです: angular jsonp リクエストを使用してroutingnumbers.info/api/ から情報を取得します (サーバーは CORS を許可しません)。jQuery でリクエストを正常に作成できますが、angular では正常に作成できません。
対応するテスト フィドルは次のとおりです: http://jsfiddle.net/dqcpa/14/
ご覧のとおり、次の 2 つのエラーが表示されます。
- リソースはスクリプトとして解釈されますが、MIME タイプ text/plain で転送されます: " https://routingnumbers.herokuapp.com/api/data.json?rn=071000013&callback=angular.callbacks._0 "。angular.min.js:97
- キャッチされない 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);
});
angularでこのAPIを使用した人はいますか? ヘッダーを変更するためにできること(sans jquery)があると思いますが、情報を見つけることができませんでした。また、サーバーの問題である可能性も考えています(ただし、jqueryで正しく機能している場合、それは問題ではありません)。多分これはHTTPSの何かかもしれません
TL:DR - Angular JSONP リクエストは機能していませんが、同じ URL で jQuery JSONP リクエストは機能しています。上記のコードを参照すると、何が欠けていますか?
どんな助けでも素晴らしいでしょう!
編集:いくつかの句読点など。