私は、http promise オブジェクトを操作するのに少し慣れていません。
API http://www.asterank.com/apiからjsonを返すためにAngular JSを使用しています。
次のように呼び出しを行う角度コントローラーがあります。
$http.jsonp('http://www.asterank.com/api/asterank?query={%22e%22:{%22$lt%22:0.1},%22i%22:{%22$lt%22:4},%22a%22:{%22$lt%22:1.5}}&limit=1&callback=JSON_CALLBACK').
success( function(data) {
console.log('great success');
}).error( function(r,t,et){
console.log(r);
console.log(t);
console.log(et);
});
Chrome のネットワーク モニターをチェックアウトすると、次のような応答が表示されます。
HTTP/1.1 200 OK
Date: Sun, 06 Oct 2013 19:06:26 GMT
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
Vary: Accept-Encoding
Server: gunicorn/18.0
Set-Cookie: session=eyJkaXNjb3Zlcl9maXJzdF90aW1lIjpmYWxzZX0.BTNGMg.eF89vHEeIpLH8sZiJOwCAJEjPhA; HttpOnly; Path=/
Content-Encoding: gzip
しかし、エラーメソッドが起動し、成功することはありません:(
これは単にサーバーが JSONP をサポートしていないためですか? これらの API が JSONP をサポートしていないが、JSON をサポートしている場合、これらの API のデータにどのようにアクセスしますか?
素敵な解決策を見つけました:
誰かがこれに遭遇した場合に備えて、私のように EXPRESS を使用している場合は、これを使用してサーバー上に簡単な小さな API を作成します。
https://npmjs.org/package/request
ここでは、プロキシ サーバー全体を起動する必要はありませんが、サーバーから JSON データを要求できます。