1

私のウェブサイトからの相対パスで参照されている html 要素 (画像やスクリプトなど) のリクエストを傍受し、NodeJSの requestJS を使用して 2 番目のウェブサイトからそれらを取得しようとしていますが、これはスクリプトで機能しますが、取得する方法がわかりません画像。
たとえば、私のホームページ .html (127.0.0.1:3030) には次のものがあります。

<script src="/main/mainscript.js"></script>

「 http://my2website.com/main/mainscript.js 」を取得するためにインターセプトされ、正常に動作します

<img src=”/images/logo.png”/>

「 http://my2website.com/images/logo.png 」を取得するために傍受されましたが、応答ヘッダーの属性が必要なファイルと一致することがわかっていても、常にエラーが発生します。

このコードを使用:

app.get('*', function (req, res) {
  var options = {
    url: 'http://my2website.com'+ req.path,
    headers: {
        'User-Agent': req.headers['user-agent']
    }
  };
  request(options, function (error, response, body) {
    if (!error && response.statusCode == 200) {
        res.send(body);
    }
    else {
        console.log('request error: ' + JSON.stringify(error));
        res.redirect('/');
    }
  });
});

下手な英語を許してください。

4

1 に答える 1

2

に設定encoding: nullしますoptionsBufferこれにより、応答をUTF-8 文字列に変換するのではなく、インスタンスとして保持することにより、バイナリ データがそのまま保持されます。

  var options = {
    url: 'http://my2website.com'+ req.path,
    headers: {
        'User-Agent': req.headers['user-agent']
    },
    encoding: null
  };
于 2015-08-12T22:24:07.397 に答える