問題タブ [http-status]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
184 参照

c# - CefSharp C# で html ページを読み込んだ後、ステータス コード (200,301,302) を取得する可能性はありますか?

CefSharp C# プロジェクトで HTML Web サイトを読み込んだ後、応答ステータス コードを取得できないという問題に直面しています。新しいページをブラウザーにロードした後に呼び出される OnLoadingStateChange のようなメソッドがいくつかあります。

主な問題は、ロードされたページに関連付けられたステータス応答コード (200、301、302 など) を取得する方法がないことです。どうやってするの?

0 投票する
2 に答える
465 参照

spring - Spring Boot に正しい HTTP ステータス コードをエラー応答に設定させる方法は?

この単純な Spring Boot アプリの例を作成して、Spring Boot がデフォルトでエラーを処理する方法に関する問題を紹介しました。

これは Spring Security 構成です。

これは REST コントローラーです。

ではSpring Boot 2.1.8.RELEASE、URL を呼び出すと、http://localhost:8080/500 コードの HTTP 応答と次の JSON 応答が返されます。

ただし、HTTP ステータス コードは期待どおりではなく (400 ではなく 500)、JSON のさまざまなフィールド (「ステータス」、「エラー」、「メッセージ」の前に予期しない「コード」がある) もあります。

これも...でテストしましたがSpring Boot 2.3.3.RELEASE、以前のように機能しなくなりました!!

ErrorControllerこれらはすべて、 、AbstractErrorControllerおよびなどのクラス/インターフェースを介して処理されますBasicErrorController(すべて で設定されますErrorMvcAutoConfiguration)。どうやら、元のリクエスト/および/またはレスポンスが別のものにラップされたURLへのリダイレクトがある/errorようです。たとえば、リクエストを次のようにデバッグできます。

結果として得られる JSON はDefaultErrorAttributes、キーの下のリクエストから HTTP ステータス コードを抽出するという Bean を介して生成されることがわかりました"javax.servlet.error.status_code"

そして、私はそこで読みました: https://github.com/spring-projects/spring-boot/issues/4694#issuecomment-163597864 (2015 年 12 月):

問題は実際には BasicErrorController にあり、HTML 応答に固有のものです。BasicErrorController.error は、ErrorPageFilter によって設定される javax.servlet.error.status_code 属性を使用して応答ステータスを設定しますが、BasicErrorController.errorHtml はそうしません。これにより、text/html エラー応答のステータスが 200 OK になります。

実際、私の場合、ErrorPageFilterが呼び出されることはありません。

また、Spring Boot プロジェクトでこの他の問題が見つかりました: https://github.com/spring-projects/spring-boot/issues/20412これは私の問題にかなり関連していますが、まだ解決策は提供されていません。

コントローラーの設計方法に戻ります (これは非常に単純化された例であることを思い出してください): コード 400 を使用して HTTP 応答を取得し、応答としてこの JSON を取得するために、Spring Boot を「カスタマイズ」する方法は次のとおりです。

ありがとう。