2

私は、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 データを要求できます。

4

2 に答える 2

1

ここでの唯一の問題は、サイトが JSONP サポートを宣言していないことです。

これらの API が JSONP をサポートしていないが、JSON をサポートしている場合、これらの API のデータにどのようにアクセスしますか?

バックエンドにプロキシ レイヤーを記述します。

于 2013-10-06T19:09:10.687 に答える