angularjsで外部APIにリクエスト(rubygems.org)

angularjs 1.2.6, APIサーバーがなんとかしろ! ということらしい.はい.CORSって呼ぶこと覚えるとぐぐりやすい.

Failed to load resource: Origin … is not allowed by Access-Control-Allow-Origin.
XMLHttpRequest cannot load … Origin is not allowed by Access-Control-Allow-Origin.
なエラー.

CORS – XHR2でクロスドメイン通信する際のサーバ側の設定 – Qiita [キータ]
_: Accessing external APIs with Angular.js
Make Jsonp Requests with AngularJs – Jake Trent
Cross Origin $http with Angular JS

angularjs 1.1以前だとrequest側のheader X-Request-With いじることでごまかせたらしいけど1.2以降その機能は削られている.

代替は jsonp.

jsonpも提供されてないとダメ.それだと, cross domainいいですよ〜っていうheaderを付加して,サーバーからリクエストして中身を返すサーバーアプリ書いてごまかすようだ.なんだそりゃ.だもんでそんなrackアプリ書いた.

https://github.com/sanemat/cornflower/blob/74058fe038fe40807114ca07b8baf5efb40a6598/config.ru#L11-L23

http://cornflower.herokuapp.com/rubygems.org/api/v1/gems/tachikoma.json
にアクセスすると
https://rubygems.org/api/v1/gems/tachikoma.json
の中身を返す.work aroundならまあいいか… rubygems.orgのissueそのうち書こう

広告

angularjsで外部APIにリクエスト(rubygems.org)」への1件のフィードバック

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中