リクエストが当初想定したレスポンスではなく Cloudflare Challenge Page に遭遇した場合、Challenge Page のレスポンス(種類にかかわらず)には cf-mitigated ヘッダーが存在し、値は challenge です。このヘッダーを使い、fetch / XHR リクエストでレスポンスがチャレンジされたかを検出できます。Challenge かどうかを確実に識別できるため、Web アプリケーションは結果に応じた処理ができます。たとえば、フロントエンドがバックエンドからのレスポンスを受けたとき、このヘッダー値の有無を確認し、想定外の Challenge Page に遭遇したケースを扱えます。
cf-mitigated ヘッダーで有効な値は challenge だけです。このヘッダーはすべての Challenge Page の種類で設定されます。
次の JavaScript のコード断片は、cf-mitigated ヘッダーでレスポンスがチャレンジされたかを検出する方法です。
fetch("/my-api-endpoint").then((response) => {
if (response.headers.get("cf-mitigated") === "challenge") {
// Handle challenged response
} else {
// Process response as usual
}
});