1. ホーム
  2. アンギュラー

[解決済み】Google Chrome ブラウザで Angular 7 と ASP.Net Core 2.2 を使用して ERR_INVALID_HTTP_RESPONSE を表示する。

2022-03-17 02:16:32

質問

フロントエンドにAngular 7、API提供にASP.Net Core 2.2を使用したアプリケーションを持っています。私が送信しているとき POST または PUT のリクエストは、Google Chrome ブラウザで表示されます。 ERR_INVALID_HTTP_RESPONSE というエラーが発生します。

.Net Coreをバージョン2.1にダウングレードすると、すべて正常に動作します。

また、Firefoxでアプリをテストしたところ、やはりすべて正常に動作しています!

この問題を解決する方法がわかりません。

Google Chrome バージョン71を使用しています。

Google Chromeのネットワークタブを確認すると、Chromeもサーバーにプリフライトリクエストを送信しているのですが...。

以下は、Networkタブで記録されたものです。

最初に

Request URL: http://localhost:12346/api/XXXX
Request Method: OPTIONS
Status Code: 204 No Content
Remote Address: [::1]:12346
Referrer Policy: no-referrer-when-downgrade

それから:(エラーの原因となる)

Request URL: http://localhost:12346/api/XXXX
Referrer Policy: no-referrer-when-downgrade

ご覧の通り、クロームは POST リクエストをサーバーに送信します (送信すべき)。

解決方法は?

これは、あなたが考えたように、ASP NET Core 2.2と関係があるのかもしれません。GitHubにissueが登録されています。 https://github.com/aspnet/AspNetCore/issues/4398

回避策としては、次のようなコードがあります。 startup.cs クラス(私は、これを最初に Configure メソッド)

app.Use(async (ctx, next) =>
{
  await next();
  if (ctx.Response.StatusCode == 204)
  {
    ctx.Response.ContentLength = 0;
  }
});

GitHubのイシューを記録しておいてください。