From f0025068e6bd747b95b7d359fed32546be812253 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sun, 16 Jan 2022 00:30:46 +0900 Subject: 2021/09/15 時点の英語版に同期 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../fetch_api/cross-global_fetch_usage/index.md | 28 ++++++++++++---------- 1 file changed, 15 insertions(+), 13 deletions(-) (limited to 'files/ja/web/api') 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 index f494df6532..3e2fbb7f86 100644 --- 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 @@ -10,31 +10,33 @@ translation_of: Web/API/Fetch_API/Cross-global_fetch_usage --- {{DefaultAPISidebar("Fetch API")}} -

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

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

エッジケース

+## エッジケース -多くのサイトは、このエッジケースに立ち向かうことはありません。 それを見るには次のようにします。 +多くのサイトは、このエッジケースに出くわすことはないでしょう。条件は以下の通りです。 - -

問題

+## 問題 以前は、例えば次のように、現在のグローバルに対して相対 URL を解決していました。 -
let absolute = new URL(relative, window.location.href)
+```js +let absolute = new URL(relative, window.location.href) +``` これ自体は問題ではありません。 この種の振る舞いを示すさまざまな API が仕様で定義されている振る舞いと矛盾してそれを実行しているだけであり、それがさらに問題を引き起こす可能性があります。 -

解決策

+## 解決策 -Firefox 60 以降では、Mozilla は、使用している `fetch()` 関数を所有するグローバルに対して相対 URL を解決します({{bug(1432272)}} を参照)。 したがって、上記の場合、次のように、iframe のロケーションに対して解決します。 +Firefox 60 以降では、 Mozilla は、使用している `fetch()` 関数を所有するグローバルに対して相対 URL を解決するようになりました({{bug(1432272)}} を参照)。 したがって、上記の場合、次のように、 iframe の位置に対して解決します。 -
let absolute = new URL(relative, frame.contentWindow.location.href)
+```js +let absolute = new URL(relative, frame.contentWindow.location.href) +``` 今後の潜在的な問題を軽減するために、この振る舞いの変更に合わせた新しい仕様を取得することについて、多くの議論が進行中です。 -- cgit v1.2.3-54-g00ecf