diff options
Diffstat (limited to 'files/ja')
-rw-r--r-- | files/ja/web/api/fetch_api/cross-global_fetch_usage/index.md | 28 |
1 files changed, 15 insertions, 13 deletions
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")}} -<p class="summary"><span class="seoSummary">この記事では、フェッチ(および潜在的に同種のリソース取得の振る舞いを示す他の API)で発生するエッジケースについて説明します。 相対 URL を含む オリジン間フェッチ(cross-origin fetch)が {{htmlelement("iframe")}} から開始される場合、相対 URL は iframe のロケーションではなく現在のグローバルなロケーションに対して解決していました。</span></p> +この記事では、フェッチ(および潜在的に同種のリソース取得の振る舞いを示す他の API)で発生するエッジケースについて説明します。 相対 URL を含む オリジン間フェッチ(cross-origin fetch)が {{htmlelement("iframe")}} から開始される場合、相対 URL は iframe の位置ではなく現在のグローバルな位置に対して解決していました。 -<h2 id="The_edge_case" name="The_edge_case">エッジケース</h2> +## エッジケース -多くのサイトは、このエッジケースに立ち向かうことはありません。 それを見るには次のようにします。 +多くのサイトは、このエッジケースに出くわすことはないでしょう。条件は以下の通りです。 -<ul> -- 同一オリジン(same-origin)の iframe が必要です。 -- その同一オリジンの iframe には、異なるベース URL を持つロケーションが必要です。 -- フェッチ関数をグローバル間(cross-global)で使用する必要があります。 例えば、`frame.contentWindow.fetch()`。 +- 同一オリジン (same-origin) の iframe が必要です。 +- その同一オリジンの iframe には、異なるベース URL を持つ位置が必要です。 +- フェッチ関数をグローバル間 (cross-global) で使用する必要があります。 例えば、 `frame.contentWindow.fetch()` のようにします。 - フェッチするために渡す URL は相対である必要があります。 -</ul> -<h2 id="The_problem" name="The_problem">問題</h2> +## 問題 以前は、例えば次のように、現在のグローバルに対して相対 URL を解決していました。 -<pre class="brush: js">let absolute = new URL(relative, window.location.href)</pre> +```js +let absolute = new URL(relative, window.location.href) +``` これ自体は問題ではありません。 この種の振る舞いを示すさまざまな API が仕様で定義されている振る舞いと矛盾してそれを実行しているだけであり、それがさらに問題を引き起こす可能性があります。 -<h2 id="The_solution" name="The_solution">解決策</h2> +## 解決策 -Firefox 60 以降では、Mozilla は、使用している `fetch()` 関数を所有するグローバルに対して相対 URL を解決します({{bug(1432272)}} を参照)。 したがって、上記の場合、次のように、iframe のロケーションに対して解決します。 +Firefox 60 以降では、 Mozilla は、使用している `fetch()` 関数を所有するグローバルに対して相対 URL を解決するようになりました({{bug(1432272)}} を参照)。 したがって、上記の場合、次のように、 iframe の位置に対して解決します。 -<pre class="brush: js">let absolute = new URL(relative, frame.contentWindow.location.href)</pre> +```js +let absolute = new URL(relative, frame.contentWindow.location.href) +``` 今後の潜在的な問題を軽減するために、この振る舞いの変更に合わせた新しい仕様を取得することについて、多くの議論が進行中です。 |