From e9f02a30232b743e705f00cfbe0f8ff095d9516f Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sat, 15 Jan 2022 19:30:02 +0900 Subject: Web/API/Fetch_API 以下を変換準備 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fetch_api/cross-global_fetch_usage/index.html | 40 ---------------------- .../fetch_api/cross-global_fetch_usage/index.md | 40 ++++++++++++++++++++++ 2 files changed, 40 insertions(+), 40 deletions(-) delete mode 100644 files/ja/web/api/fetch_api/cross-global_fetch_usage/index.html create mode 100644 files/ja/web/api/fetch_api/cross-global_fetch_usage/index.md (limited to 'files/ja/web/api/fetch_api/cross-global_fetch_usage') diff --git a/files/ja/web/api/fetch_api/cross-global_fetch_usage/index.html b/files/ja/web/api/fetch_api/cross-global_fetch_usage/index.html deleted file mode 100644 index ab0e717f27..0000000000 --- a/files/ja/web/api/fetch_api/cross-global_fetch_usage/index.html +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: グローバル間フェッチの使用 -slug: Web/API/Fetch_API/Cross-global_fetch_usage -tags: - - Cross global - - Fetch - - edge case - - relative URL -translation_of: Web/API/Fetch_API/Cross-global_fetch_usage ---- -

{{DefaultAPISidebar("Fetch API")}}

- -

この記事では、フェッチ(および潜在的に同種のリソース取得の振る舞いを示す他の API)で発生するエッジケースについて説明します。 相対 URL を含む オリジン間フェッチ(cross-origin fetch)が {{htmlelement("iframe")}} から開始される場合、相対 URL は iframe のロケーションではなく現在のグローバルなロケーションに対して解決していました。

- -

エッジケース

- -

多くのサイトは、このエッジケースに立ち向かうことはありません。 それを見るには次のようにします。

- - - -

問題

- -

以前は、例えば次のように、現在のグローバルに対して相対 URL を解決していました。

- -
let absolute = new URL(relative, window.location.href)
- -

これ自体は問題ではありません。 この種の振る舞いを示すさまざまな API が仕様で定義されている振る舞いと矛盾してそれを実行しているだけであり、それがさらに問題を引き起こす可能性があります。

- -

解決策

- -

Firefox 60 以降では、Mozilla は、使用している fetch() 関数を所有するグローバルに対して相対 URL を解決します({{bug(1432272)}} を参照)。 したがって、上記の場合、次のように、iframe のロケーションに対して解決します。

- -
let absolute = new URL(relative, frame.contentWindow.location.href)
- -

今後の潜在的な問題を軽減するために、この振る舞いの変更に合わせた新しい仕様を取得することについて、多くの議論が進行中です。

diff --git a/files/ja/web/api/fetch_api/cross-global_fetch_usage/index.md b/files/ja/web/api/fetch_api/cross-global_fetch_usage/index.md new file mode 100644 index 0000000000..ab0e717f27 --- /dev/null +++ b/files/ja/web/api/fetch_api/cross-global_fetch_usage/index.md @@ -0,0 +1,40 @@ +--- +title: グローバル間フェッチの使用 +slug: Web/API/Fetch_API/Cross-global_fetch_usage +tags: + - Cross global + - Fetch + - edge case + - relative URL +translation_of: Web/API/Fetch_API/Cross-global_fetch_usage +--- +

{{DefaultAPISidebar("Fetch API")}}

+ +

この記事では、フェッチ(および潜在的に同種のリソース取得の振る舞いを示す他の API)で発生するエッジケースについて説明します。 相対 URL を含む オリジン間フェッチ(cross-origin fetch)が {{htmlelement("iframe")}} から開始される場合、相対 URL は iframe のロケーションではなく現在のグローバルなロケーションに対して解決していました。

+ +

エッジケース

+ +

多くのサイトは、このエッジケースに立ち向かうことはありません。 それを見るには次のようにします。

+ + + +

問題

+ +

以前は、例えば次のように、現在のグローバルに対して相対 URL を解決していました。

+ +
let absolute = new URL(relative, window.location.href)
+ +

これ自体は問題ではありません。 この種の振る舞いを示すさまざまな API が仕様で定義されている振る舞いと矛盾してそれを実行しているだけであり、それがさらに問題を引き起こす可能性があります。

+ +

解決策

+ +

Firefox 60 以降では、Mozilla は、使用している fetch() 関数を所有するグローバルに対して相対 URL を解決します({{bug(1432272)}} を参照)。 したがって、上記の場合、次のように、iframe のロケーションに対して解決します。

+ +
let absolute = new URL(relative, frame.contentWindow.location.href)
+ +

今後の潜在的な問題を軽減するために、この振る舞いの変更に合わせた新しい仕様を取得することについて、多くの議論が進行中です。

-- cgit v1.2.3-54-g00ecf