0

204 を返すGETパススルー リクエストを作成すると、コンテンツ タイプが設定されません。grunt-connect-proxy同じリクエストを行うが、代わりにPUT, grunt-connect-proxy(またはgrunt-contrib-connect- わからない) を使用するContent-type: application/jsonと、自動的に応答に添付されます。これは問題です。1)コンテンツがないため、コンテンツ タイプが何でもあると言うのは不正確です。さらに重要なのは、 2) Angular が空の応答を JSON として解析しようとするため、アプリケーションが壊れてしまうことです。

ブラウザでエンドポイントをテストしましたが、実際のサーバーはこの追加情報を返信していません。

応答にコンテンツ タイプを追加しないようにgrunt-connect-proxy(または)するにはどうすればよいですか?grunt-contrib-connect204 No Content

4

1 に答える 1

0

問題は解決しましたが、ハッキングかどうかはわかりません。インターネット上で誰も文句を言っていないので、他の人がこれを行う必要はないと思います. 私の解決策は、応答の「ヘッダー」イベントを監視するミドルウェアを追加し、statusCode が 204 で、コンテンツ タイプがヘッダーからコンテンツ タイプを削除するように設定されている場合です。

var apply204 = function(req, res, next) {
    res.on('header', function() {
        if(res.statusCode === 204) {
            if(res._headers['content-type'] !== undefined) {
                delete res._headers['content-type'];
            }
        }
    });

    next();
};

なぜこれが起こるのか、まだ興味があります。

于 2014-10-22T14:36:31.210 に答える