backbone.js とクロスドメイン スクリプト 質問する

backbone.js とクロスドメイン スクリプト 質問する

私は backbone.js と jquery を操作したいと考えています。アプリはモバイル フォン (つまり「localhost」) でオフラインで実行されることになっており、インターネットのどこかにあるサーバー側バックエンドでの呼び出しはほとんどありません。

backbone.js を使用してクロスドメイン リクエストを実現する最良の方法は何ですか?

私は JSON を使いたいのですが、必要に応じて最終的には REST に戻すこともできます。

これまでのところ、あまり印象的ではないコードは次のとおりです。

App.Collections.Events = Backbone.Collection.extend({
   model: Event,    
   url: 'http://mydomain.com/api/getevents/user_id/1/'
});

ベストアンサー1

Backbone.jsがURLからデータを取得するために使用するクロスドメインXMLHttpRequestsを許可する方法は2つあります。1つ目は、接続しようとしている非オリジンドメインのサーバー側を制御できる場合に適切であり、実装が必要です。クロスオリジンリソース共有(または CORS)。

CORS を実装するには、提供先のドメインのレスポンス ヘッダーで、HTTPRefererリクエスト ヘッダーの「Origin」部分 ( の先頭までのビット。path正規表現と一致する必要があります^.+?\/{2}[^\/]*)を返します。Access-Control-Allow-Origin

 Access-Control-Allow-Origin: http://mydomain.com

上書きする必要があるかもしれないバックボーン.syncのために正しい設定XMLHttpRequest オブジェクトに設定されます。

2 番目のオプションは、クロス オリジン サーバーにアクセスできない場合、独自のサーバー (オリジン サーバーまたは CORS を有効にするサーバー) を介してリクエストをプロキシすることです。当然、呼び出し先のドメインの所有者は、これが行われることを好まないかもしれませんが、これは設計によるものです。サービスを呼び出すことを望まない場合、ブロックする IP アドレスは、各クライアントの IP ではなく、1 つだけです。

おすすめ記事