私は 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 つだけです。