0

REST API を使用している backbone.js アプリケーションがあります。すべてのリクエストで、ユーザー/パスを API に送信する必要があります。リクエストの送信方法は次のとおりです。

`Backbone.BasicAuth.set(tempUser, tempPass);

    this.fetch({
         error: function(){
            // code
         },
        success:function(model, response){              
            // code                 
        }} );`

これは IE 8/9 では機能しなかったため、node.js サーバーを作成し、node-http-proxy モジュールを使用してすべてのリクエストをインターセプトするプロキシ サーバーを作成しました。

これはノード プロキシ サーバーです。

`var httpProxy = require('http-proxy');
 var options = {'target': {
     'host': 'test.someserver.com',
     'port': 8800
 }};

 httpProxy.createServer(function(req, res, proxy) {
     req.headers.host = 'test.someserver.com';
     proxy.proxyRequest(req, res, options);
 }).listen('8080');`

ここでの問題は、ユーザー/パスをノード プロキシ サーバーに送信することです。XDomainRequest がカスタム ヘッダーをサポートしていないことがわかっており、ユーザー/パスをクエリ文字列として送信したくない (安全ではありません)。

ユーザー/パスを IE 8/9 からノード プロキシ サーバーに送信する方法はありますか?

4

1 に答える 1

1

はい、実際にこれを行うためのライブラリを作成しました。

https://github.com/victorquinn/Backbone.CrossDomain

これは Backbone.sync() のドロップイン置換として機能するため、IE7/8/9 でのすべての要求は、XMLHttpRequest ではなく IE の XDomainRequest オブジェクトを使用します。主なアイデアは、モデル コードを変更する必要はありませんが、sync() を延期するものはすべて、以前は機能しなかったときに機能するようになるということです。

そのライブラリを使用して問題が発生した場合は、お気軽にお問い合わせください。

もう 1 つのオプションは、バックボーン アプリと同じドメインにプロキシ サーバーを配置することです (これにより、XDomainRequest オブジェクトを使用する必要がなくなります) が、ここではオプションではないようです。

于 2013-05-29T13:52:41.863 に答える